| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- from datetime import datetime
- from pydantic import BaseModel, Field, field_validator
- from backend.app.schemas.not_null import IgnoresNullForRequiredColumns
- from backend.app.services.location_service import normalize_location_name
- class LocationCreate(BaseModel):
- name: str = Field(..., min_length=1, max_length=255)
- identifier: str | None = Field(default=None, max_length=100)
- @field_validator("name")
- @classmethod
- def validate_name(cls, v: str) -> str:
- return normalize_location_name(v)
- class LocationUpdate(IgnoresNullForRequiredColumns):
- __orm_table__ = "locations"
- name: str | None = Field(default=None, min_length=1, max_length=255)
- identifier: str | None = Field(default=None, max_length=100)
- @field_validator("name")
- @classmethod
- def validate_name(cls, v: str | None) -> str | None:
- if v is None:
- return None
- return normalize_location_name(v)
- class LocationResponse(BaseModel):
- id: int
- name: str
- identifier: str | None = None
- spool_count: int = 0
- created_at: datetime
- updated_at: datetime
- class Config:
- from_attributes = True
|