from sqlalchemy import Column, Integer, String, Boolean
from sqlalchemy.orm import relationship
from database import Base


class Printer(Base):
    __tablename__ = "printers"

    id = Column(Integer, primary_key=True, index=True)
    name = Column(String, nullable=False)
    ip_address = Column(String, nullable=False)
    port = Column(Integer, default=9100, nullable=False)
    is_active = Column(Boolean, default=True, nullable=False)
    protocol = Column(String, default="escpos_tcp", nullable=False)
    line_width = Column(Integer, default=48, nullable=False)
    duplicates = Column(Integer, default=0, nullable=False)
    codepage_n = Column(Integer, default=29, nullable=False)

    products = relationship("Product", back_populates="printer_zone")
    print_logs = relationship("PrintLog", back_populates="printer")
    print_jobs = relationship("PrintJob", back_populates="printer")
    prep_zones = relationship("PrepZone", secondary="prep_zone_printers", back_populates="printers")
