21 lines
1.1 KiB
Python
21 lines
1.1 KiB
Python
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())
|