from sqlalchemy import Column, String, DateTime, Integer, Numeric, ForeignKey from sqlalchemy.sql import func from app.core.database.db_session import Base class ServiceJobQuote(Base): __tablename__ = "service_job_quotes" quote_id = Column(String(26), primary_key=True) service_job_id = Column(String(26), ForeignKey("service_jobs.job_id"), nullable=False, index=True) version = Column(Integer, default=1) subtotal = Column(Numeric(10, 2), nullable=False) tax = Column(Numeric(10, 2), default=0.00) additional_damage_amount = Column(Numeric(10, 2), default=0.00) total = Column(Numeric(10, 2), nullable=False) status = Column(String(20), default="PENDING_CUSTOMER") # DRAFT, PENDING_CUSTOMER, ACCEPTED, REJECTED, EXPIRED, SUPERSEDED reason = Column(String(500), nullable=True) expires_at = Column(DateTime, nullable=True) accepted_at = Column(DateTime, nullable=True) rejected_at = Column(DateTime, nullable=True) created_by = Column(String(26), nullable=True) created_at = Column(DateTime, server_default=func.now())