from pydantic import BaseModel
from typing import Optional


PROTOCOLS = ["escpos_tcp"]  # extend later as needed


class PrinterBase(BaseModel):
    name: str
    ip_address: str
    port: int = 9100
    is_active: bool = True
    protocol: str = "escpos_tcp"


class PrinterCreate(PrinterBase):
    pass


class PrinterUpdate(BaseModel):
    name: Optional[str] = None
    ip_address: Optional[str] = None
    port: Optional[int] = None
    is_active: Optional[bool] = None
    protocol: Optional[str] = None


class PrinterOut(PrinterBase):
    id: int

    model_config = {"from_attributes": True}
