"""Reference VAT Rate 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 VAT_TYPES class ReferenceVatRate(BaseModel): """Reference VAT Rate model.""" __tablename__ = 'reference_vat_rate' reference_vat_rate_id = db.Column(db.Integer, primary_key=True) vat_type = db.Column( Enum(*VAT_TYPES, name='vat_type', create_type=False), nullable=False ) country_of_tax_residence = db.Column(db.String(3), nullable=True) country_of_tax_policy = db.Column(db.String(3), nullable=True) is_sba_signed = db.Column(db.Boolean, nullable=True) is_tax_applicable = db.Column(db.Boolean, nullable=True) is_vat_registered_in_country_of_tax_policy = db.Column(db.Boolean, nullable=True) transaction_type = db.Column(db.String(255), nullable=True) tax_rate = db.Column(db.Numeric(5, 2), nullable=True) effective_date = db.Column(db.Date, nullable=False) @classmethod def get_all(cls): """Retrieve all vat rates entries ordered by id.""" return cls.query.order_by(cls.reference_vat_rate_id).all()