legal_entity

id | VARCHAR(36) | NOT NULL name | TEXT | NOT NULL short_name | TEXT | NULL type | ENUM('msp', 'mis', 'drug_store') | NOT NULL edrpou | TEXT | NOT NULL addresses[] | JSON | NULL phones[] | JSON | NULL emails[] | JSON | NULL created_at | DATETIME | NOT NULL created_by | TEXT | NOT NULL updated_at | DATETIME | NULL updated_by | TEXT | NULL active | TINYINT | NOT NULL public_name | VARCHAR(45) | NULL kved | JSON | NOT NULL founders[] | JSON | NOT NULL status | ENUM('new', 'verified') | NOT NULL owner_property_type | ENUM('state', 'private') | NOT NULL legal_form | ENUM('ТОВ', 'ФОП') | NOT NULL

doctor

id | VARCHAR(36) | NOT NULL education[] | JSON | NOT NULL qualification[] | JSON | NULL speciality[] | ENUM('терапевт', 'педіатр', 'сімейний лікар') | NOT NULL professional_level | JSON | NOT NULL science_degree | JSON | NULL academic_degree | JSON | NULL specialization | TEXT | NULL

party

id | VARCHAR(36) | NOT NULL last_name | TEXT | NOT NULL first_name | TEXT | NOT NULL second_name | TEXT | NULL birth_date | DATE | NOT NULL gender | ENUM('GENDER') | NOT NULL tax_id | TEXT | NULL national_id | TEXT | NULL documents | JSON | NULL phones | JSON | NULL created_at | DATETIME | NOT NULL created_by | TEXT | NOT NULL updated_at | DATETIME | NOT NULL updated_by | TEXT | NOT NULL

employee_doctor

id | VARCHAR(36) NOT | NULL education[] | JSON | NOT NULL qualification[] | JSON | NULL speciality[] | ENUM('терапевт', 'педіатр', 'сімейний лікар') | NOT NULL professional_level | JSON | NOT NULL science_degree | JSON | NULL academic_degree | JSON | NULL specialization | TEXT | NULL working_hours | TEXT | NULL

division

id | VARCHAR(36) | NOT NULL msp_id | TEXT | NOT NULL name | VARCHAR(45) | NOT NULL address | JSON | NOT NULL external_id | TEXT | NULL phones[] | JSON | NULL email | JSON | NULL

employee

id | VARCHAR(36) | NOT NULL legal_entity_id | TEXT | NOT NULL position | TEXT | NOT NULL start_date | DATETIME | NOT NULL end_date | DATETIME | NULL active | TINYINT | NOT NULL created_at | TIMESTAMP | NOT NULL updated_at | TIMESTAMP | NOT NULL created_by | TEXT | NOT NULL updated_by | TEXT | NOT NULL status | ENUM('') | NOT NULL employee_type | ENUM('doctor', 'hr', 'owner', 'accountant') | NOT NULL party_id | TEXT | NOT NULL division_id | VARCHAR(45) | NOT NULL

declaration_signed

id | VARCHAR(36) | NOT NULL document_type | ENUM('declaration', 'msp_registration') | NOT NULL document | TEXT | NOT NULL content | TEXT | NOT NULL public_key | TEXT | NOT NULL

msp

id | VARCHAR(36) | NOT NULL mountain_group | ENUM('') | NOT NULL accreditation[] | JSON | NOT NULL license[] | JSON | NOT NULL

capitation_contract

id | VARCHAR(36) | NOT NULL msp_id | TEXT | NOT NULL product_id | TEXT | NOT NULL start_date | DATETIME | NOT NULL end_date | DATETIME | NULL status | ENUM('') | NOT NULL signed_at | DATETIME | NULL services[] | JSON | NULL

product

id | VARCHAR(36) | NOT NULL name | TEXT | NOT NULL parameters[] | JSON | NOT NULL

declaration_request

id | VARCHAR(36) | NOT NULL f1 | VARCHAR(45) | NULL f2 | VARCHAR(45) | NULL

declaration

id | VARCHAR(36) | NOT NULL patient_id | TEXT | NOT NULL start_date | DATETIME | NOT NULL end_date | DATETIME | NOT NULL legal_entity_id | TEXT | NOT NULL status | ENUM('') | NOT NULL signed_at | DATETIME | NULL created_at | DATETIME | NOT NULL created_by | TEXT | NOT NULL updated_at | DATETIME | NOT NULL updated_by | TEXT | NOT NULL active | TINYINT | NULL scope | ENUM('') | NULL employee_id | TEXT | NOT NULL declaration_signed_id | INT | NOT NULL

log_changes

id | VARCHAR(36) | NOT NULL user_id | VARCHAR(45) | NOT NULL resource | TEXT | NOT NULL what_changed | JSON | NOT NULL TS | TIMESTAMP | NOT NULL

legal_entity_requests

id | INT | NOT NULL legal_entity_data | VARCHAR(45) | NULL

registration_requests

id | VARCHAR(36) | NOT NULL msp_id | VARCHAR(45) | NULL creator_id | VARCHAR(45) | NOT NULL data | JSON | NOT NULL email | TEXT | NOT NULL creator_signature | TEXT | NOT NULL status | ENUM('') | NOT NULL verification_id | VARCHAR(45) | NOT NULL

users

id | VARCHAR(36) | NOT NULL email | TEXT | NOT NULL user_name | VARCHAR(45) | NOT NULL inserted_at | DATETIME | NOT NULL inserted_by | TEXT | NOT NULL updated_at | DATETIME | NOT NULL updated_by | TEXT | NOT NULL status | ENUM('') | NOT NULL credentials | JSON | NOT NULL party_id | VARCHAR(26) | NULL scopes[] | TEXT | NOT NULL

(PRM) party doctor division msp employee legal_entity capitation_contract product employee_doctor

(Auth) users registration_requests

(OPS_DB) declaration declaration_request

(Media Storage) declaration_signed

party 1–? doctor party 1–+ employee employee *–1 division employee *–1 legal_entity division +–1 legal_entity msp +–1 legal_entity product x–1 legal_entity capitation_contract *–1 product capitation_contract 1–x product employee 1–? employee_doctor employee 1–* declaration declaration ?–1 declaration_signed party ?–+ users