Initial commit MKD fixes
This commit is contained in:
40
backend/migrate_doma_mappings.sql
Executable file
40
backend/migrate_doma_mappings.sql
Executable file
@@ -0,0 +1,40 @@
|
||||
-- Таблица для сопоставлений адресов из Doma.AI с домами в локальной БД
|
||||
CREATE TABLE IF NOT EXISTS doma_address_mappings (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
doma_address TEXT NOT NULL UNIQUE, -- Адрес из Doma.AI
|
||||
building_id VARCHAR(50) NOT NULL REFERENCES buildings(id) ON DELETE CASCADE,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_doma_address_mappings_doma_address ON doma_address_mappings(doma_address);
|
||||
CREATE INDEX IF NOT EXISTS idx_doma_address_mappings_building ON doma_address_mappings(building_id);
|
||||
|
||||
-- Таблица для сопоставлений имён сотрудников из Doma.AI с сотрудниками в локальной БД
|
||||
CREATE TABLE IF NOT EXISTS doma_employee_mappings (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
doma_name TEXT NOT NULL UNIQUE, -- Имя из Doma.AI
|
||||
employee_id VARCHAR(50) NOT NULL REFERENCES employees(id) ON DELETE CASCADE,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_doma_employee_mappings_doma_name ON doma_employee_mappings(doma_name);
|
||||
CREATE INDEX IF NOT EXISTS idx_doma_employee_mappings_employee ON doma_employee_mappings(employee_id);
|
||||
|
||||
-- Таблица для ожидающих подтверждения сопоставлений
|
||||
CREATE TABLE IF NOT EXISTS pending_doma_mappings (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
type VARCHAR(20) NOT NULL CHECK (type IN ('building', 'employee')),
|
||||
doma_value TEXT NOT NULL, -- Адрес или имя из Doma.AI
|
||||
suggested_id VARCHAR(50), -- Предложенный ID существующей записи
|
||||
suggested_name TEXT, -- Название предложенной записи для отображения
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
resolved_at TIMESTAMPTZ,
|
||||
resolved_by TEXT, -- Кто разрешил (user_id или 'system')
|
||||
resolution VARCHAR(20) CHECK (resolution IN ('approved', 'rejected', 'new')), -- approved = использовать suggested_id, rejected = игнорировать, new = создать новую
|
||||
resolved_id VARCHAR(50) -- ID, который был использован после разрешения
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_pending_mappings_type ON pending_doma_mappings(type);
|
||||
CREATE INDEX IF NOT EXISTS idx_pending_mappings_resolved ON pending_doma_mappings(resolved_at);
|
||||
Reference in New Issue
Block a user