zov-tech/miniapp/assets
wasrusgen 52eb0e4a96 Phase 4 stage 1: Сборки — модель + создание + список
Backend:
- sheets.is_master(user) — единая роль measurer ∨ assembler
- grant_role() автоматически выдаёт парную роль (measurer ↔ assembler)
- Новая таблица Assemblies со схемой: client, scope, scheduled_at,
  status (created|scheduled|in_progress|completed|cancelled),
  photos_before/in_progress/after, signature_file, gcal_event_id
- POST /api/assembly_create — менеджер заводит сборку,
  при scheduled_at создаётся событие Google Calendar (4 часа)
- POST /api/assembly_list — фильтр по роли: менеджер видит свои,
  мастер — назначенные + неназначенные (created/scheduled)
- POST /api/assembly_detail — карточка с правами доступа
- /api/photo: добавил MIME для pdf/dwg/dxf (для DWG-блока B+E)

Frontend (assembly.js — новый модуль):
- Форма /api/assembly_create с валидацией: имя, адрес, scope
- Pre-fill из карточки клиента (sessionStorage.prefillAssembly,
  адрес + measurement_id из последнего замера)
- Список сборок + детальная карточка со статусом и составом работ
- Маршруты: #/assembly, #/assembly/new, #/assembly/<id>

Frontend (app.js + clients.js):
- Кнопка «🔨 Заказать сборку» в карточке клиента
- Quick-action «Сборки» на главной менеджера
- Блок «🔨 Сборки» в кабинете мастера (caps.measurer ∨ assembler)

CSS: .assembly-card / .assembly-card-* (золотой бордер)
index.html: cache bump v=20260514c
2026-05-14 09:53:40 +03:00
..
app.js Phase 4 stage 1: Сборки — модель + создание + список 2026-05-14 09:53:40 +03:00
assembly.js Phase 4 stage 1: Сборки — модель + создание + список 2026-05-14 09:53:40 +03:00
clients.js Phase 4 stage 1: Сборки — модель + создание + список 2026-05-14 09:53:40 +03:00
icons.js feat(miniapp): «Подбор техники» screen — 7-step picker (categories/niches/budget/infra/scenario/brands/summary) wired to /api/podbor 2026-05-09 13:34:46 +03:00
measurements.js fix client create — 7 багов + правило самопроверки 2026-05-14 00:09:14 +03:00
podbor.config.js simplify: remove 'features' step from all 8 categories 2026-05-11 23:37:41 +03:00
podbor.css Phase 4 stage 1: Сборки — модель + создание + список 2026-05-14 09:53:40 +03:00
podbor.js measurements: photo upload + measurement detail page + PDF/print 2026-05-12 18:11:29 +03:00
podbor.picts.js measurements: kitchen layout wizard + 5 layout pictograms + profile integration 2026-05-12 17:41:01 +03:00
request.js client card D1: хронология + файлы + быстрые действия 2026-05-13 18:39:25 +03:00
styles.css splash: убрать вращающееся кольцо, оставить только опилки + breathing 2026-05-13 22:58:09 +03:00
wasrusgen-logo.svg splash: точный viewBox + цвет blue-grey #2C3E50 2026-05-13 22:15:01 +03:00
zamer-checklist.md checklist: 5 SVG-эскизов в стиле Editorial Calm 2026-05-13 18:00:43 +03:00
zamer-picts.js checklist: 5 SVG-эскизов в стиле Editorial Calm 2026-05-13 18:00:43 +03:00
zov-logo.svg bot: role buttons → MiniApp directly + branded splash loader 2026-05-12 18:54:09 +03:00