Files
bambuddy/backend/app/schemas/location.py

40 lines
1.0 KiB
Python

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