Skip to content

Models

components.payment_gateway.subcomponents.rules.models.expense_limit_rule

ExpenseLimitRule

Bases: BaseModel

__table_args__ class-attribute instance-attribute

__table_args__ = {'schema': PAYMENT_GATEWAY_SCHEMA_NAME}

__tablename__ class-attribute instance-attribute

__tablename__ = 'expense_limit_rule'

amount class-attribute instance-attribute

amount = mapped_column(Integer, nullable=False)

card class-attribute instance-attribute

card = relationship(Card, foreign_keys=card_id)

card_id class-attribute instance-attribute

card_id = mapped_column(
    UUID(as_uuid=True),
    ForeignKey(id),
    index=True,
    nullable=True,
)

criteria class-attribute instance-attribute

criteria = mapped_column(JSONB(), nullable=False)

currency class-attribute instance-attribute

currency = mapped_column(
    AlanBaseEnumTypeDecorator(CurrencyCode), nullable=False
)

description class-attribute instance-attribute

description = mapped_column(Text, nullable=False)

end class-attribute instance-attribute

end = mapped_column(DateTime(timezone=True), nullable=True)

external_id class-attribute instance-attribute

external_id = mapped_column(
    String(255), nullable=False, index=True
)

ID used by the external payment service provider to identify the card.

first_day class-attribute instance-attribute

first_day = mapped_column(Integer, nullable=True)

is_active class-attribute instance-attribute

is_active = mapped_column(Boolean, nullable=False)

is_terminated property

is_terminated

period class-attribute instance-attribute

period = mapped_column(
    AlanBaseEnumTypeDecorator(ExpenseLimitPeriod),
    nullable=False,
)

reference class-attribute instance-attribute

reference = mapped_column(Text, nullable=False)

start class-attribute instance-attribute

start = mapped_column(
    DateTime(timezone=True), nullable=True
)

terminated_at class-attribute instance-attribute

terminated_at = mapped_column(DateTime, nullable=True)

Termination is done at the initiative of the business layer. Usage restrictions in terminal state cannot be modified or used anymore.

components.payment_gateway.subcomponents.rules.models.helpers

load_all_models

load_all_models()
Source code in components/payment_gateway/subcomponents/rules/models/helpers.py
def load_all_models() -> list[type[DbModel]]:
    from components.payment_gateway.subcomponents.rules.models.expense_limit_rule import (
        ExpenseLimitRule,
    )
    from components.payment_gateway.subcomponents.rules.models.usage_restriction_rule import (
        UsageRestrictionRule,
    )

    return [UsageRestrictionRule, ExpenseLimitRule]

components.payment_gateway.subcomponents.rules.models.usage_restriction_rule

UsageRestrictionRule

Bases: BaseModel

__table_args__ class-attribute instance-attribute

__table_args__ = {'schema': PAYMENT_GATEWAY_SCHEMA_NAME}

__tablename__ class-attribute instance-attribute

__tablename__ = 'usage_restriction_rule'

account class-attribute instance-attribute

account = relationship(Account, foreign_keys=account_id)

account_id class-attribute instance-attribute

account_id = mapped_column(
    UUID(as_uuid=True),
    ForeignKey(id),
    index=True,
    nullable=True,
)

criteria class-attribute instance-attribute

criteria = mapped_column(JSONB(), nullable=False)

description class-attribute instance-attribute

description = mapped_column(Text, nullable=False)

end class-attribute instance-attribute

end = mapped_column(DateTime(timezone=True), nullable=True)

external_id class-attribute instance-attribute

external_id = mapped_column(
    String(255), nullable=False, index=True
)

ID used by the external payment service provider to identify the card.

is_active class-attribute instance-attribute

is_active = mapped_column(Boolean, nullable=False)

is_terminated property

is_terminated

reference class-attribute instance-attribute

reference = mapped_column(Text, nullable=False)

start class-attribute instance-attribute

start = mapped_column(
    DateTime(timezone=True), nullable=True
)

terminated_at class-attribute instance-attribute

terminated_at = mapped_column(DateTime, nullable=True)

Termination is done at the initiative of the business layer. Usage restrictions in terminal state cannot be modified or used anymore.