# app/schemas/schema.py import json from pydantic import BaseModel, field_validator from typing import Optional, Dict, Any, Literal, List from datetime import datetime class VasSchemaBase(BaseModel): name: Optional[str] = None description: Optional[str] = None schema_json: Optional[Dict[str, Any]] = None @field_validator("schema_json", mode="before") def normalize_json_field(cls, v): if v is None: return None if isinstance(v, str): try: return json.loads(v) except Exception: return {} return v class VasSchemaCreate(VasSchemaBase): name: str description: str schema_json: Dict[str, Any] class VasSchemaUpdate(VasSchemaBase): pass class VasSchemaOut(VasSchemaBase): id: int created_at: datetime updated_at: datetime model_config = { "from_attributes": True }