- Add VK OAuth implicit flow: /vk-auth redirect, /vk-callback JS page, /vk-callback/save endpoint with state validation - Add VK_CLIENT_ID/VK_CLIENT_SECRET to config - Add refresh_token/token_expires_at columns to vk_connections (migration 0006) - Fix vk_catalog task: handle price/thumb_photo as string or dict (VK API v5.199) - Fix connections/vk/test: use groups.getById instead of market.getAlbums (works with both user and group tokens) - Add orphan deletion to mirror_to_vk: VK products not in Evotor are removed - Handle ungrouped Evotor products: push to "Без категории" VK album - Respect SyncConfig.is_enabled in mirror_to_vk - Add product count column to catalog groups page - Add group name column to catalog products page - Expand test suite: 73 new tests covering connections routes, catalog routes, vk_sync task logic, and catalog task helpers (138 total, all passing) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
from pydantic_settings import BaseSettings
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
DATABASE_URL: str = "mysql+pymysql://evosync:evosync@db:3306/evosync"
|
|
REDIS_URL: str = "redis://redis:6379/0"
|
|
SECRET_KEY: str = "change-me-in-production"
|
|
BASE_URL: str = "http://localhost:8000"
|
|
PASSWORD_RESET_EXPIRE_MINUTES: int = 60
|
|
|
|
EVOTOR_APP_ID: str = ""
|
|
EVOTOR_WEBHOOK_SECRET: str = ""
|
|
|
|
VK_CLIENT_ID: str = ""
|
|
VK_CLIENT_SECRET: str = ""
|
|
|
|
JIVOSITE_WIDGET_ID: str = ""
|
|
VK_DEFAULT_PHOTO_PATH: str = "/app/default_product.png"
|
|
VK_API_VERSION: str = "5.199"
|
|
VK_CATEGORY_ID: int = 40932
|
|
VK_STOCK_AMOUNT: int = 1000
|
|
VK_WEIGHT_PRICE_MULTIPLIER: int = 10
|
|
|
|
CATALOG_REFRESH_INTERVAL_SECONDS: int = 3600
|
|
INVITE_EXPIRE_HOURS: int = 48
|
|
EMAIL_PROVIDER: str = "console"
|
|
SMS_PROVIDER: str = "console"
|
|
SYSTEM_USER_EMAIL: str = ""
|
|
SYSTEM_USER_PASSWORD: str = ""
|
|
|
|
FLOWER_USER: str = "admin"
|
|
FLOWER_PASSWORD: str = "changeme"
|
|
|
|
DB_ROOT_PASSWORD: str = ""
|
|
DB_NAME: str = ""
|
|
DB_USER: str = ""
|
|
DB_PASSWORD: str = ""
|
|
|
|
model_config = {"env_file": ".env", "case_sensitive": False, "extra": "ignore"}
|
|
|
|
|
|
settings = Settings()
|