2025-10-06 15:27:01 +02:00
|
|
|
"""
|
|
|
|
|
Demo Accounts API - Public demo account information (ATOMIC READ)
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
from fastapi import APIRouter
|
|
|
|
|
from typing import List
|
|
|
|
|
import structlog
|
|
|
|
|
|
|
|
|
|
from app.api.schemas import DemoAccountInfo
|
|
|
|
|
from app.core import settings
|
|
|
|
|
from shared.routing import RouteBuilder
|
|
|
|
|
|
|
|
|
|
router = APIRouter(tags=["demo-accounts"])
|
|
|
|
|
logger = structlog.get_logger()
|
|
|
|
|
|
|
|
|
|
route_builder = RouteBuilder('demo')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@router.get(
|
|
|
|
|
route_builder.build_base_route("accounts", include_tenant_prefix=False),
|
|
|
|
|
response_model=List[DemoAccountInfo]
|
|
|
|
|
)
|
|
|
|
|
async def get_demo_accounts():
|
|
|
|
|
"""Get public demo account information (ATOMIC READ)"""
|
|
|
|
|
accounts = []
|
|
|
|
|
|
|
|
|
|
for account_type, config in settings.DEMO_ACCOUNTS.items():
|
|
|
|
|
accounts.append({
|
|
|
|
|
"account_type": account_type,
|
|
|
|
|
"name": config["name"],
|
|
|
|
|
"email": config["email"],
|
|
|
|
|
"password": "DemoSanPablo2024!" if "sanpablo" in config["email"] else "DemoLaEspiga2024!",
|
|
|
|
|
"description": (
|
|
|
|
|
"Panadería individual que produce todo localmente"
|
2025-11-30 08:48:56 +01:00
|
|
|
if account_type == "professional"
|
2025-10-06 15:27:01 +02:00
|
|
|
else "Punto de venta con obrador central"
|
|
|
|
|
),
|
|
|
|
|
"features": (
|
2025-11-01 21:35:03 +01:00
|
|
|
["Gestión de Producción", "Recetas", "Inventario", "Ventas", "Previsión de Demanda"]
|
2025-11-30 08:48:56 +01:00
|
|
|
if account_type == "professional"
|
2025-11-01 21:35:03 +01:00
|
|
|
else ["Gestión de Proveedores", "Pedidos", "Inventario", "Ventas", "Previsión de Demanda"]
|
2025-10-06 15:27:01 +02:00
|
|
|
),
|
|
|
|
|
"business_model": (
|
2025-11-30 08:48:56 +01:00
|
|
|
"Producción Local" if account_type == "professional" else "Obrador Central + Punto de Venta"
|
2025-10-06 15:27:01 +02:00
|
|
|
)
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
return accounts
|