from typing import List, Optional from fastapi import APIRouter from pydantic import BaseModel from core.series import get_active_series, get_default_series router = APIRouter(tags=["Series"]) class SeriesOption(BaseModel): Series: int Name: str class SeriesListResponse(BaseModel): Default: Optional[int] = None Options: List[SeriesOption] @router.get("/api/series", response_model=SeriesListResponse) async def list_series(document: str): """ Series activas (no bloqueadas) y serie por defecto para un tipo de documento de SAP B1. `document` es el código BoObjectTypes del documento (ej. "1250000001" para Solicitud de Transferencia); lo define cada módulo que lo consuma, no este router. """ active_series = get_active_series(document) options = [ {"Series": s["Series"], "Name": s.get("Name") or str(s["Series"])} for s in active_series ] return {"Default": get_default_series(document), "Options": options}