| Домен | Сущности | Описание |
|---|---|---|
| Core | Branch, Organization, User, Role, Permission | Ядро: филиалы, юрлица, пользователи |
| HR | Employee, Schedule, ShiftLog, SalaryConfig, SalaryAccrual | Персонал, графики, ЗП |
| Scheduling | Appointment, AppointmentStatus, Room | Записи, кабинеты |
| CRM | Patient, PatientFamily, Lead, LeadSource, FunnelStage, FunnelEntry | Пациенты, лиды, воронка |
| Clinical | MedicalRecord, Visit, ToothChart, TreatmentPlan, TreatmentPlanItem, PhotoProtocol, MedDocument, DocTemplate | Медблок |
| Finance | CashRegister, FinancialTransaction, FinancialCategory, PriceList, PriceItem, Invoice, Payment, Refund, BankStatement, BonusAccount, Deposit, Discount, Fund | Финансы |
| Warehouse | Warehouse, Item, ItemCategory, StockEntry, StockMovement, Purchase, PurchaseItem, WriteOff, MaterialRequest, Inventory, Lab | Склад, заявки, лаборатории |
| Communication | MessageTemplate, MessageLog, Notification, TaskItem | Коммуникации, задачи |
| Атрибут | Тип | Обяз. | Ограничения | Описание |
|---|---|---|---|---|
| id | UUID | ✅ | PK | Идентификатор |
| name | string | ✅ | max:100 | Название |
| address | string | ✅ | max:300 | Адрес |
| phone | string | ✅ | Телефон | |
| organization_id | UUID | ✅ | FK→Organization | Юрлицо |
| is_active | boolean | ✅ | default:true | Активен |
| Атрибут | Тип | Обяз. | Ограничения | Описание |
|---|---|---|---|---|
| id | UUID | ✅ | PK | |
| full_name | string | ✅ | max:200 | ФИО |
| iin | string | ✅ | unique, 12 цифр | ИИН (Казахстан) |
| phone | string | ✅ | Телефон | |
| position | string | ✅ | Должность | |
| specialization | string | ❌ | Для врачей | |
| branch_id | UUID | ✅ | FK→Branch | Филиал |
| official_salary | decimal | ✅ | «Белая» ЗП | |
| real_salary_config | JSON | ✅ | Управленческая ЗП (% + бонусы) | |
| qr_code | string | ✅ | unique | QR для авторизации |
| Атрибут | Тип | Обяз. | Ограничения | Описание |
|---|---|---|---|---|
| id | UUID | ✅ | PK | |
| full_name | string | ✅ | max:200 | ФИО |
| iin | string | ❌ | unique, 12 цифр | ИИН |
| phone | string | ✅ | Телефон | |
| phone_whatsapp | string | ❌ | ||
| birth_date | date | ❌ | Дата рождения | |
| is_child | boolean | ✅ | default:false | Несовершеннолетний |
| guardian_id | UUID | ❌ | FK→Patient | Опекун |
| lead_source_id | UUID | ❌ | FK→LeadSource | Источник |
| Атрибут | Тип | Обяз. | Ограничения | Описание |
|---|---|---|---|---|
| patient_id | UUID | ✅ | FK→Patient | Пациент |
| employee_id | UUID | ✅ | FK→Employee | Врач |
| room_id | UUID | ✅ | FK→Room | Кабинет |
| start_time / end_time | datetime | ✅ | Период | |
| status | enum | ✅ | default:scheduled | Статус записи |
| is_first_visit | boolean | ✅ | computed | Первичный? |
| Атрибут | Тип | Описание |
|---|---|---|
| Warehouse.name | string | Название склада |
| Warehouse.branch_id | FK→Branch | Филиал |
| Warehouse.type | enum | main / cabinet |
| MaterialRequest.requested_by | FK→Employee | Медсестра / врач |
| MaterialRequest.status | enum | pending → approved → issued / rejected |
| MaterialRequest.issued_at | datetime | Когда выдано (детализация) |
| Статус | → Переходы |
|---|---|
| scheduled (Запланирована) | confirmed, cancelled, no_show |
| confirmed (Подтверждена) | in_progress, cancelled, no_show |
| in_progress (В процессе) | completed |
| completed (Завершена) | — |
| cancelled / no_show | scheduled (перезапись) |
| Значение | Метка |
|---|---|
| cash | Наличные |
| card | Банковская карта |
| kaspi_pay | Каспий Pay |
| installment_nb / kaspi | Рассрочка НБ / Каспий |
| credit_nb | Кредит НБ |
| bonus | Бонусы |
| deposit | Со счёта-депозита |
| certificate | Подарочный сертификат |
| Фонд | Доля |
|---|---|
| Развитие компании | 20% |
| Развитие команды | 18% |
| Бонусы управляющему | 7% |
| Резервы | 20% |
| Дивиденды | 35% |