feat(backend): add FastAPI backend — procurement, inventory domain, Casdoor auth, PM arrival endpoints

This commit is contained in:
ali_mohaghegh
2026-08-25 19:08:14 +03:30
parent c8a9b66395
commit 170aed66ea
67 changed files with 9774 additions and 0 deletions
+16
View File
@@ -0,0 +1,16 @@
"""JSON-safe serialization helpers (contract: ISO 8601 UTC with `Z`)."""
from datetime import date, datetime, timezone
def to_iso(value: datetime | None) -> str | None:
"""Timestamptz -> '2026-08-02T10:00:00Z' (UTC). Naive values are treated as UTC."""
if value is None:
return None
if value.tzinfo is None:
value = value.replace(tzinfo=timezone.utc)
return value.astimezone(timezone.utc).isoformat().replace("+00:00", "Z")
def to_date(value: date | None) -> str | None:
"""Date -> 'YYYY-MM-DD'."""
return value.isoformat() if value is not None else None