-- Инициализация PostgreSQL для Lottery Bot

-- Создание пользователя для приложения (если не существует)
DO $$
BEGIN
   IF NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = 'lottery_app') THEN
      CREATE ROLE lottery_app LOGIN PASSWORD 'lottery_app_password';
   END IF;
END
$$;

-- Предоставление прав
GRANT CONNECT ON DATABASE lottery_bot TO lottery_app;
GRANT USAGE ON SCHEMA public TO lottery_app;
GRANT CREATE ON SCHEMA public TO lottery_app;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO lottery_app;
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO lottery_app;

-- Установка прав по умолчанию для новых таблиц
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO lottery_app;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT USAGE, SELECT ON SEQUENCES TO lottery_app;

-- Создание индексов для оптимизации производительности
-- (будут созданы после создания таблиц через Alembic)

-- Включение расширений
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE EXTENSION IF NOT EXISTS "pg_stat_statements";

-- Настройка для мониторинга
CREATE EXTENSION IF NOT EXISTS "pg_stat_monitor";

-- Комментарии
COMMENT ON DATABASE lottery_bot IS 'Lottery Bot Database - Telegram Bot for Lottery Management';