libretime/api/libretime_api/settings/_schema.py

32 lines
776 B
Python

from typing import Literal, Optional
from libretime_shared.config import (
BaseConfig,
DatabaseConfig,
GeneralConfig,
RabbitMQConfig,
StorageConfig,
)
from pydantic import BaseModel
class EmailConfig(BaseModel):
from_email: str = "no-reply@libretime.org"
host: str = "localhost"
port: int = 25
user: str = ""
password: str = ""
encryption: Optional[Literal["ssl/tls", "starttls"]] = None
timeout: Optional[int] = None
key_file: Optional[str] = None
cert_file: Optional[str] = None
class Config(BaseConfig):
general: GeneralConfig
database: DatabaseConfig = DatabaseConfig()
rabbitmq: RabbitMQConfig = RabbitMQConfig()
storage: StorageConfig = StorageConfig()
email: EmailConfig = EmailConfig()