"""Pydantic schemas for Floor."""

from datetime import datetime
from typing import Optional

from pydantic import BaseModel, Field


class FloorCreate(BaseModel):
    name: str = Field(..., min_length=1, max_length=100)
    level: int = Field(..., ge=-10, le=200)
    sort_order: int = 0


class FloorUpdate(BaseModel):
    name: Optional[str] = Field(None, min_length=1, max_length=100)
    level: Optional[int] = Field(None, ge=-10, le=200)
    sort_order: Optional[int] = None


class FloorRead(BaseModel):
    id: str
    house_id: str
    name: str
    level: int
    sort_order: int
    created_at: datetime

    model_config = {"from_attributes": True}
