57 lines
2.2 KiB
SQL
57 lines
2.2 KiB
SQL
-- +goose Up
|
||
-- +goose StatementBegin
|
||
|
||
-- =========================================
|
||
-- ТАБЛИЦА: roles - Роли пользователей
|
||
-- =========================================
|
||
CREATE TABLE roles (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
name VARCHAR(50) NOT NULL UNIQUE,
|
||
description TEXT,
|
||
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
|
||
);
|
||
|
||
COMMENT ON TABLE roles IS 'Справочник ролей для RBAC системы';
|
||
COMMENT ON COLUMN roles.name IS 'Уникальное название роли';
|
||
|
||
-- =========================================
|
||
-- ТАБЛИЦА: permissions - Разрешения системы
|
||
-- =========================================
|
||
CREATE TABLE permissions (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
name VARCHAR(100) NOT NULL UNIQUE,
|
||
resource VARCHAR(50) NOT NULL,
|
||
action VARCHAR(50) NOT NULL,
|
||
description TEXT,
|
||
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
|
||
);
|
||
|
||
COMMENT ON TABLE permissions IS 'Справочник разрешений для RBAC системы';
|
||
COMMENT ON COLUMN permissions.resource IS 'Ресурс: request, user, complaint и т.д.';
|
||
COMMENT ON COLUMN permissions.action IS 'Действие: create, read, update, delete, moderate';
|
||
|
||
-- =========================================
|
||
-- ТАБЛИЦА: request_types - Типы заявок на помощь
|
||
-- =========================================
|
||
CREATE TABLE request_types (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
name VARCHAR(100) NOT NULL UNIQUE,
|
||
description TEXT,
|
||
icon VARCHAR(50),
|
||
is_active BOOLEAN DEFAULT TRUE,
|
||
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
|
||
);
|
||
|
||
COMMENT ON TABLE request_types IS 'Справочник типов помощи (продукты, медикаменты, техника)';
|
||
COMMENT ON COLUMN request_types.icon IS 'Название иконки для UI';
|
||
COMMENT ON COLUMN request_types.is_active IS 'Активность типа (для скрытия без удаления)';
|
||
|
||
-- +goose StatementEnd
|
||
|
||
-- +goose Down
|
||
-- +goose StatementBegin
|
||
DROP TABLE IF EXISTS request_types CASCADE;
|
||
DROP TABLE IF EXISTS permissions CASCADE;
|
||
DROP TABLE IF EXISTS roles CASCADE;
|
||
-- +goose StatementEnd
|