"""LedgerAdjustmentApplied model.""" from abacus_common_logic.connectors.database import db from abacus_common_logic.models.base import BaseModel class LedgerAdjustmentApplied(BaseModel): """Ledger Adjustment Applied model.""" __tablename__ = 'ledger_adjustment_applied' ledger_adjustment_applied_id = db.Column(db.Integer, primary_key=True) abacus_event_id = db.Column(db.Integer, nullable=False) account_id = db.Column(db.Integer, nullable=False) contract_id = db.Column(db.Integer, nullable=True) statement_period_id = db.Column(db.Integer, nullable=False) # TODO: Remove this column when ledger adjustment and detail tables are dropped ledger_adjustment_id = db.Column( db.Integer, db.ForeignKey('ledger_adjustment.ledger_adjustment_id'), nullable=True, ) # TODO: Update it to non-nullable worksheet_adjustment_id = db.Column(db.Integer, nullable=True) adjustment_amount = db.Column(db.Numeric(20, 18), nullable=False) adjustment_currency_code = db.Column(db.String(3), nullable=False) adjustment_amount_payee_currency = db.Column(db.Numeric(20, 18), nullable=False) adjustment_payee_currency_code = db.Column(db.String(3), nullable=False) apply_to_flowthrough_payment = db.Column(db.Boolean, nullable=True) ledger_adjustment = db.relationship( 'LedgerAdjustment', backref='ledger_adjustment_applied', uselist=False, lazy='joined', ) details = db.relationship( 'LedgerAdjustmentDetailApplied', secondary='ledger_adjustment_adjustment_detail_applied', primaryjoin='LedgerAdjustmentApplied.ledger_adjustment_applied_id ' '== LedgerAdjustmentAdjustmentDetailApplied' '.ledger_adjustment_applied_id', secondaryjoin='LedgerAdjustmentDetailApplied' '.ledger_adjustment_detail_applied_id ' '== LedgerAdjustmentAdjustmentDetailApplied' '.ledger_adjustment_detail_applied_id', lazy='joined', )