projects/org/@biz-pusk/@it-app-pusk/DESIGN-db.md

← Назад в оглавление

DESIGN-DB — Схема базы данных ПУСК

Версия: 1.0
Источник: ТЗ 4 компонента v2.0 + Каскадный план
Дата: 2026-03-07


Уровень 1 — ЯДРО

organizations (
  id, name, logo, plan, created_at
)

users (
  id, org_id, name, email, password_hash,
  role ENUM(director, engineer, foreman, brigade, pto),
  invited_by, created_at, active
)

sessions (
  id, user_id, token, expires_at, created_at
)

Уровень 2 — ПРОЦЕСС

projects (
  id, org_id, name, customer, address,
  deadline, status, foreman_id, created_at
)

stages (
  id, project_id, name, order, status,
  template_key, created_at
)

tasks (
  id, stage_id, name, assignee_id,
  status, due_date, created_at
)

checklist_items (
  id, task_id, text, type, required,
  done, done_by, done_at
)

operations (
  id, org_id, name, description, yaml_template, created_at
)

Уровень 3 — ФАЙЛЫ

files (
  id, org_id, entity_type, entity_id,
  name, path, size, mime,
  gps_lat, gps_lng, device,
  uploaded_by, created_at
)

Уровень 4 — КОММУНИКАЦИИ

chat_messages (
  id, project_id, user_id, text,
  file_id, created_at, read_by
)

notifications (
  id, user_id, type, payload, read_at, created_at
)

Компонент 4 — ФИНАНСЫ

contracts (
  id, project_id, number, amount,
  customer, signed_at, created_at
)

estimates (
  id, project_id, contract_id,
  total, created_at
)

estimate_items (
  id, estimate_id, name, unit,
  quantity, price, created_at
)

purchases (
  id, project_id, name, quantity,
  unit, price, supplier, date, created_at
)

equipment (
  id, org_id, name, type,
  reg_number, created_at
)

equipment_records (
  id, equipment_id, project_id,
  hours, date, operator_id, created_at
)

brigades (
  id, org_id, name, foreman_id, created_at
)

brigade_members (
  id, brigade_id, user_id, rate, created_at
)

work_orders (
  id, project_id, brigade_id,
  task_id, amount, status, created_at
)

Статусы

Project.status

planningin_progresscompletedarchived

Stage.status

lockedin_progresssubmittedaccepted | rejected

Task.status

pendingin_progresssubmittedaccepted | rejected


← Назад в оглавление