"""LedgerAdjustmentDetail model.""" from abacus_common_logic.connectors.database import db from abacus_common_logic.models.base import BaseModel from sqlalchemy import Enum from ledger.constants.constants import DISTRIBUTION_TYPES class LedgerAdjustmentDetail(BaseModel): """Ledger Adjustment Detail model.""" __tablename__ = 'ledger_adjustment_detail' ledger_adjustment_detail_id = db.Column(db.Integer, primary_key=True) account_id = db.Column(db.Integer, nullable=False) contract_id = db.Column(db.Integer, nullable=True) activity_statement_period_id = db.Column(db.Integer, nullable=False) apply_to_statement_period_id = db.Column(db.Integer, nullable=False) reference_adjustment_type_id = db.Column( db.Integer, db.ForeignKey('reference_adjustment_type.reference_adjustment_type_id'), nullable=False, ) currency_code = db.Column(db.String(3), nullable=False) amount = db.Column(db.Numeric(20, 18), nullable=False) upc = db.Column(db.String(20), nullable=False) distribution_type = db.Column( Enum(*DISTRIBUTION_TYPES, name='distribution_type', create_type=False), default=DISTRIBUTION_TYPES.DIGITAL, nullable=False, ) note = db.Column(db.String(180), nullable=True) reference_adjustment_type = db.relationship( 'ReferenceAdjustmentType', backref='reference_adjustment_type', uselist=False )