initial commit
This commit is contained in:
56
migrations/00002_create_base_dictionaries.sql
Normal file
56
migrations/00002_create_base_dictionaries.sql
Normal file
@@ -0,0 +1,56 @@
|
||||
-- +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
|
||||
Reference in New Issue
Block a user