85 lines
4 KiB
Python
85 lines
4 KiB
Python
from __future__ import annotations
|
|
|
|
from functools import lru_cache
|
|
|
|
from pydantic import Field
|
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
appwrite_endpoint: str = Field(..., alias="APPWRITE_ENDPOINT")
|
|
appwrite_project_id: str = Field(..., alias="APPWRITE_PROJECT_ID")
|
|
appwrite_api_key: str = Field(..., alias="APPWRITE_API_KEY")
|
|
appwrite_database_id: str = Field(..., alias="APPWRITE_DATABASE_ID")
|
|
appwrite_collection_produtos_catalogo_id: str = Field(
|
|
..., alias="APPWRITE_COLLECTION_PRODUTOS_CATALOGO_ID"
|
|
)
|
|
appwrite_collection_produtos_venda_id: str = Field(
|
|
..., alias="APPWRITE_COLLECTION_PRODUTOS_VENDA_ID"
|
|
)
|
|
appwrite_session_cookie: str | None = Field(
|
|
default=None, alias="APPWRITE_SESSION_COOKIE"
|
|
)
|
|
appwrite_collection_faturas_id: str = Field(..., alias="APPWRITE_COLLECTION_FATURAS_ID")
|
|
appwrite_collection_laboratorios_id: str = Field(..., alias="APPWRITE_COLLECTION_LABORATORIOS_ID")
|
|
appwrite_collection_categorias_id: str = Field(..., alias="APPWRITE_COLLECTION_CATEGORIAS_ID")
|
|
appwrite_collection_subcategorias_id: str = Field(..., alias="APPWRITE_COLLECTION_SUBCATEGORIAS_ID")
|
|
appwrite_collection_usuarios_id: str = Field(..., alias="APPWRITE_COLLECTION_USUARIOS_ID")
|
|
appwrite_collection_usuarios_data_id: str = Field(
|
|
..., alias="APPWRITE_COLLECTION_USUARIOS_DATA_ID"
|
|
)
|
|
appwrite_collection_usuarios_perfil_id: str = Field(
|
|
..., alias="APPWRITE_COLLECTION_USUARIOS_PERFIL_ID"
|
|
)
|
|
appwrite_collection_usuario_empresa_perfis_id: str = Field(
|
|
..., alias="APPWRITE_COLLECTION_USUARIO_EMPRESA_PERFIS_ID"
|
|
)
|
|
appwrite_collection_empresas_id: str = Field(..., alias="APPWRITE_COLLECTION_EMPRESAS_ID")
|
|
appwrite_collection_empresas_dados_id: str = Field(
|
|
..., alias="APPWRITE_COLLECTION_EMPRESAS_DADOS_ID"
|
|
)
|
|
appwrite_collection_empresas_socios_id: str = Field(
|
|
..., alias="APPWRITE_COLLECTION_EMPRESAS_SOCIOS_ID"
|
|
)
|
|
appwrite_collection_enderecos_id: str = Field(..., alias="APPWRITE_COLLECTION_ENDERECOS_ID")
|
|
appwrite_collection_entregas_id: str = Field(
|
|
default="", alias="APPWRITE_COLLECTION_ENTREGAS_ID"
|
|
)
|
|
appwrite_collection_carrinhos_id: str = Field(..., alias="APPWRITE_COLLECTION_CARRINHOS_ID")
|
|
appwrite_collection_pedidos_id: str = Field(..., alias="APPWRITE_COLLECTION_PEDIDOS_ID")
|
|
appwrite_collection_pagamentos_id: str = Field(..., alias="APPWRITE_COLLECTION_PAGAMENTOS_ID")
|
|
appwrite_collection_produtos_estoque_id: str = Field(
|
|
..., alias="APPWRITE_COLLECTION_PRODUTOS_ESTOQUE_ID"
|
|
)
|
|
security_api_key: str | None = Field(default=None, alias="SECURITY_API_KEY")
|
|
jwt_secret: str = Field(..., alias="JWT_SECRET")
|
|
jwt_algorithm: str = Field(default="HS256", alias="JWT_ALGORITHM")
|
|
jwt_access_ttl_seconds: int = Field(default=3600, alias="JWT_ACCESS_TTL_SECONDS")
|
|
session_cookie_name: str = Field(default="session", alias="SESSION_COOKIE_NAME")
|
|
cookie_secure: bool = Field(default=False, alias="COOKIE_SECURE")
|
|
cookie_domain: str | None = Field(default=None, alias="COOKIE_DOMAIN")
|
|
superadmin_identificador: str = Field(
|
|
default="admin", alias="SUPERADMIN_IDENTIFICADOR"
|
|
)
|
|
superadmin_senha: str = Field(default="admin123", alias="SUPERADMIN_SENHA")
|
|
cors_allow_origins: str | None = Field(default=None, alias="CORS_ALLOW_ORIGINS")
|
|
|
|
# Mercado Pago settings
|
|
mercado_pago_access_token: str = Field(..., alias="MERCADO_PAGO_ACCESS_TOKEN")
|
|
mercado_pago_public_key: str = Field(..., alias="MERCADO_PAGO_PUBLIC_KEY")
|
|
mercado_pago_sandbox: bool = Field(default=True, alias="MERCADO_PAGO_SANDBOX")
|
|
|
|
mapbox_access_token: str | None = Field(default=None, alias="MAPBOX_ACCESS_TOKEN")
|
|
|
|
model_config = SettingsConfigDict(
|
|
env_file=".env",
|
|
env_file_encoding="utf-8",
|
|
case_sensitive=False,
|
|
extra="ignore",
|
|
populate_by_name=True,
|
|
)
|
|
|
|
|
|
@lru_cache
|
|
def get_settings() -> Settings:
|
|
return Settings()
|