aibilly_backend_code/src/models/payer_rule_model.py
2026-03-10 16:44:04 +05:30

38 lines
1.8 KiB
Python

from sqlalchemy import Column, String, Integer, Boolean, DateTime, ForeignKey, Text, JSON, ARRAY, relationship
from sqlalchemy.dialects.postgresql import UUID
from src.config.database import Base
from sqlalchemy.sql import func
import uuid
class PayerRule(Base):
__tablename__ = 'payer_rules'
id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4, nullable=False)
payer_id = Column(UUID(as_uuid=True), nullable=False)
rule_name = Column(String(255), nullable=False)
rule_type = Column(String(255), nullable=False)
rule_description = Column(Text, nullable=False)
rule_logic = Column(JSON, nullable=False)
affected_cpt_codes = Column(JSON, nullable=True)
affected_icd10_codes = Column(JSON, nullable=True)
effective_date = Column(DateTime, nullable=False)
termination_date = Column(DateTime, nullable=True)
created_by_user_id = Column(UUID(as_uuid=True), nullable=True)
updated_by_user_id = Column(UUID(as_uuid=True), nullable=True)
denial_count = Column(Integer, nullable=False)
last_denial_date = Column(DateTime, nullable=True)
payer_id = Column(UUID(as_uuid=True), ForeignKey('payers.id'), nullable=False)
payer = relationship('Payer', back_populates='')
created_by_user_id = Column(UUID(as_uuid=True), ForeignKey('users.id'), nullable=True)
user = relationship('User', back_populates='')
updated_by_user_id = Column(UUID(as_uuid=True), ForeignKey('users.id'), nullable=True)
user = relationship('User', back_populates='')
created_at = Column(DateTime(timezone=True), server_default=func.now(), nullable=False)
updated_at = Column(DateTime(timezone=True), server_default=func.now(), onupdate=func.now(), nullable=False)
def __repr__(self):
return f'<PayerRule(id={self.id})>'