2025-06-09 08:10:19 +00:00

33 lines
1.3 KiB
Python

from sqlalchemy import Column, Integer, String, DateTime, Float, ForeignKey, Enum
from sqlalchemy.orm import relationship
from sqlalchemy.sql import func
import enum
from app.db.base import Base
class ClaimStatus(str, enum.Enum):
SUBMITTED = "submitted"
UNDER_REVIEW = "under_review"
APPROVED = "approved"
DENIED = "denied"
PAID = "paid"
CLOSED = "closed"
class Claim(Base):
__tablename__ = "claims"
id = Column(Integer, primary_key=True, index=True)
claim_number = Column(String, unique=True, index=True, nullable=False)
policy_id = Column(Integer, ForeignKey("policies.id"), nullable=False)
incident_date = Column(DateTime, nullable=False)
report_date = Column(DateTime, nullable=False, server_default=func.now())
description = Column(String, nullable=False)
claim_amount = Column(Float, nullable=False)
status = Column(Enum(ClaimStatus), default=ClaimStatus.SUBMITTED, nullable=False)
settlement_amount = Column(Float, nullable=True)
settlement_date = Column(DateTime, nullable=True)
created_at = Column(DateTime(timezone=True), server_default=func.now())
updated_at = Column(DateTime(timezone=True), onupdate=func.now())
# Relationships
policy = relationship("Policy", back_populates="claims")