| 123456789101112131415161718192021222324252627282930313233343536373839 |
- # 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
- }
|