change services api

This commit is contained in:
Max
2025-06-08 19:46:23 +03:00
parent 0c0c62fe1b
commit e4e00184a5
2 changed files with 79 additions and 29 deletions

View File

@@ -77,16 +77,6 @@ CREATE TABLE building_management_services (
PRIMARY KEY (building_id, service_id)
);
-- 8. Платежные сервисы
CREATE TABLE payment_services (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
name TEXT NOT NULL,
logo_url TEXT,
provider_name TEXT,
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);
-- 9. Дополнительные сервисы
CREATE TABLE additional_services (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
@@ -153,19 +143,40 @@ CREATE TABLE cameras (
updated_at TIMESTAMPTZ DEFAULT NOW()
);
-- 15. Платежи ЖКХ (исправленная версия)
CREATE TABLE utility_payments (
-- 15. Агрегаторы платежных сервисов (ЖКХ, Интернет и т.д.)
CREATE TABLE payment_services (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
apartment_id UUID NOT NULL REFERENCES apartments(id),
service_id UUID NOT NULL REFERENCES payment_services(id),
amount DECIMAL(10, 2) NOT NULL,
period DATE NOT NULL,
status TEXT NOT NULL CHECK (status IN ('paid', 'pending', 'overdue')),
name TEXT NOT NULL, -- Например, "ЖКХ", "Интернет"
icon TEXT, -- Можно хранить название иконки или url
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);
-- 16. Заявки
-- 16. Детализация услуг внутри агрегатора (отопление, вода и т.д.)
CREATE TABLE payment_service_details (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
service_id UUID NOT NULL REFERENCES payment_services(id),
name TEXT NOT NULL, -- Например, "Отопление"
description TEXT, -- Описание услуги
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);
-- 17. Платежи пользователя по деталям услуг
CREATE TABLE payments (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL REFERENCES auth.users(id),
apartment_id UUID REFERENCES apartments(id),
detail_id UUID NOT NULL REFERENCES payment_service_details(id),
amount DECIMAL(10, 2) NOT NULL,
period DATE NOT NULL,
status TEXT NOT NULL CHECK (status IN ('paid', 'pending', 'overdue')),
payment_method TEXT CHECK (payment_method IN ('card', 'sber')),
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);
-- 18. Заявки
CREATE TABLE tickets (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL REFERENCES auth.users(id),