"""
Конфигурация приложения
"""

import os
from dotenv import load_dotenv

# Загружаем переменные окружения
load_dotenv()

# Конфигурация VK API
class VKConfig:
    # Токен группы (обязательно)
    TOKEN = os.getenv('VK_TOKEN')
    
    # ID группы (с минусом)
    GROUP_ID = int(os.getenv('VK_GROUP_ID', -0))
    
    # Owner ID для публикаций (обычно совпадает с GROUP_ID)
    OWNER_ID = int(os.getenv('VK_OWNER_ID', GROUP_ID))
    
    # API версия
    API_VERSION = os.getenv('VK_API_VERSION', '5.131')
    
    # Базовый URL API
    API_URL = 'https://api.vk.com/method'

# Конфигурация приложения
class AppConfig:
    # Режим отладки
    DEBUG = os.getenv('DEBUG', 'False').lower() == 'true'
    
    # Путь к логам
    LOG_DIR = os.getenv('LOG_DIR', 'logs')
    
    # Путь к медиафайлам
    MEDIA_DIR = os.getenv('MEDIA_DIR', 'media')
    
    # Путь к шаблонам
    TEMPLATES_DIR = os.getenv('TEMPLATES_DIR', 'templates')

# Конфигурация публикаций
class PostConfig:
    # Максимальное количество попыток публикации
    MAX_RETRIES = int(os.getenv('POST_MAX_RETRIES', 3))
    
    # Задержка между попытками (в секундах)
    RETRY_DELAY = int(os.getenv('POST_RETRY_DELAY', 5))
    
    # Публиковать от имени группы
    FROM_GROUP = os.getenv('POST_FROM_GROUP', '1') == '1'
    
    # Подписывать записи
    SIGNED = os.getenv('POST_SIGNED', '0') == '1'
    
    # Закрывать комментарии
    CLOSE_COMMENTS = os.getenv('POST_CLOSE_COMMENTS', '0') == '1'
    
    # Разрешать копирование
    COPY_RIGHT = os.getenv('POST_COPY_RIGHT', '0') == '1'

# Конфигурация планировщика
class SchedulerConfig:
    # Проверять расписание каждые N минут
    CHECK_INTERVAL = int(os.getenv('SCHEDULER_CHECK_INTERVAL', 5))
    
    # Максимальное количество публикаций за раз
    MAX_POSTS_PER_CHECK = int(os.getenv('SCHEDULER_MAX_POSTS', 5))

# Проверка обязательных переменных
if not VKConfig.TOKEN:
    raise ValueError('VK_TOKEN не установлен в переменных окружения')

if VKConfig.GROUP_ID == 0:
    raise ValueError('VK_GROUP_ID не установлен в переменных окружения')