"""Reference Payment Type Model.""" from abacus_common_logic.connectors.database import db from abacus_common_logic.models.base import CRUDMixin from sqlalchemy import Enum, func from abacus_contract.constants.constants import PAYMENT_TYPES class ReferencePaymentType(db.Model, CRUDMixin): """Reference Payment Type Model.""" __tablename__ = 'reference_payment_type' reference_payment_type_id = db.Column(db.Integer, primary_key=True) payment_type = db.Column( Enum( *PAYMENT_TYPES, name='payment_type', create_type=False ), default=PAYMENT_TYPES.ADVANCE, nullable=False ) payment_service = db.Column(db.String(255), nullable=False) is_internal = db.Column(db.Boolean, nullable=False, default=False) notes = db.Column(db.String(255), nullable=True) @classmethod def default_order(cls): """Override to customize default ordering.""" return func.lower(cls.reference_payment_type_id)