# settings/models.py

from django.db import models
import pytz
class LocalDatabase(models.Model):
    name = models.CharField(max_length=255, verbose_name="Имя базы данных")
    host = models.CharField(max_length=255, verbose_name="Хост базы данных", default="localhost")
    port = models.IntegerField(default=5432, verbose_name="Порт базы данных")
    user = models.CharField(max_length=255, verbose_name="Пользователь базы данных")
    database = models.CharField(max_length=255, verbose_name="Название базы данных")
    password = models.CharField(max_length=255, verbose_name="Пароль базы данных")
    is_active = models.BooleanField(default=True, verbose_name="Активна ли база данных")
    
    def __str__(self):
        return self.name

    class Meta:
        verbose_name = "Локальная база данных"
        verbose_name_plural = "Локальные базы данных"

class TelegramSettings(models.Model):
    bot_token = models.CharField(max_length=255, help_text="Токен вашего бота Telegram")
    chat_id = models.CharField(max_length=255, help_text="ID чата для отправки сообщений")
    username = models.CharField(max_length=255, help_text="Имя пользователя для бота", blank=True, null=True)
    
    def __str__(self):
        return f"Telegram Bot ({self.username})"
    
    class Meta:
        verbose_name = "Настройки Telegram"
        verbose_name_plural = "Настройки Telegram"
        

class EmailSettings(models.Model):
    smtp_server = models.CharField(max_length=255, help_text="SMTP сервер для отправки почты")
    smtp_port = models.IntegerField(default=587, help_text="SMTP порт для почты")
    smtp_user = models.CharField(max_length=255, help_text="Имя пользователя для SMTP")
    smtp_password = models.CharField(max_length=255, help_text="Пароль для SMTP")
    from_email = models.EmailField(help_text="Email для отправки сообщений")
    
    class Meta:
        verbose_name = "Настройки почты"
        verbose_name_plural = "Настройки почты"
    
    def __str__(self):
        return f"Email Settings for {self.from_email}"

class GlobalHotelSettings(models.Model):
    check_in_time = models.TimeField(help_text="Время заезда")
    check_out_time = models.TimeField(help_text="Время выезда")
    currency = models.CharField(max_length=3, help_text="Валюта")
    global_timezone = models.CharField(
        max_length=63,
        choices=[(tz, tz) for tz in pytz.all_timezones],  # Список всех часовых поясов
        default='UTC',  # Значение по умолчанию
    )
    
    def __str__(self):
        return "Глобальные настройки отеля"
    
    class Meta:
        verbose_name = "Глобальные настройки отеля"
        verbose_name_plural = "Глобальные настройки отеля"

class GlobalSystemSettings(models.Model):
    system_name = models.CharField(max_length=255, help_text="Название системы")
    system_version = models.CharField(max_length=255, help_text="Версия системы")
    server_timezone = models.CharField(
        max_length=63,
        choices=[(tz, tz) for tz in pytz.all_timezones],  # Список всех часовых поясов
        default='UTC',  # Значение по умолчанию
    )
    def __str__(self):
        return "Глобальные настройки системы"

    class Meta:
        verbose_name = "Глобальные настройки системы"
        verbose_name_plural = "Глобальные настройки системы"
        