Coverage for app\schemas\school.py: 100%
33 statements
« prev ^ index » next coverage.py v7.3.2, created at 2026-01-15 13:39 +0300
« prev ^ index » next coverage.py v7.3.2, created at 2026-01-15 13:39 +0300
1from pydantic import BaseModel, Field
2from typing import Optional, List
3from datetime import datetime
5class SchoolBase(BaseModel):
6 name: str
7 type: str = "school"
8 status: str = "active"
9 address: Optional[str] = None
10 phone: Optional[str] = None
11 email: Optional[str] = None
12 director_name: Optional[str] = None
13 lat: Optional[float] = None
14 lon: Optional[float] = None
16class SchoolCreate(SchoolBase):
17 initial_plan_code: Optional[str] = None
19class SchoolUpdate(BaseModel):
20 name: Optional[str] = None
21 status: Optional[str] = None
22 address: Optional[str] = None
23 phone: Optional[str] = None
24 email: Optional[str] = None
25 director_name: Optional[str] = None
26 lat: Optional[float] = None
27 lon: Optional[float] = None
29class School(SchoolBase):
30 id: str
31 token: str
32 last_heartbeat: Optional[datetime] = None
33 version: int
34 created_at: datetime
35 updated_at: datetime
37 class Config:
38 from_attributes = True