import uuid
from datetime import datetime, timezone
from sqlalchemy import Column, String, DateTime, Text, ForeignKey
from sqlalchemy.dialects.postgresql import UUID
from app.core.database import Base


def now_utc():
    return datetime.now(timezone.utc)


class ProductionReportManualEntry(Base):
    """
    Per-chassis manual-entry fields for the Production Report.
    These columns can only be filled by staff via the report UI — they are not
    captured anywhere else in the system automatically.
    """
    __tablename__ = 'production_report_manual_entry'

    id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
    chassis_id = Column(
        UUID(as_uuid=True),
        ForeignKey('chassis_master.chassis_id'),
        unique=True,
        nullable=False,
    )
    contractor_group = Column(String(10))       # 'A' or 'B'
    ac_make = Column(String(50))                # Haiger / Jatck / Sparrow / Daga
    interior_work = Column(String(50))          # Shell and Core / Jtack / Haiger
    driver_request = Column(Text)
    document_pending = Column(Text)
    seat_fitting_pending = Column(Text)
    remark = Column(Text)

    created_at = Column(DateTime(timezone=True), default=now_utc)
    updated_at = Column(DateTime(timezone=True), default=now_utc, onupdate=now_utc)
