| 123456789101112131415161718192021222324252627282930313233343536373839 |
- from datetime import datetime
- from pydantic import BaseModel, Field, field_validator
- 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(BaseModel):
- 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
|