iso_payment.py 1.6 KB
from datetime import datetime
from sqlalchemy import (
    Column,
    Integer,
    DateTime,
    String,
    Date,
    ForeignKey,
    )
from sqlalchemy.ext.declarative import declared_attr


class IsoPaymentMixin:
    @declared_attr
    def __tablename__(self):
        return 'bphtb_payment'

    @declared_attr
    def id(self):
        return Column(
                Integer, ForeignKey('bphtb.bphtb_bank.id'), primary_key=True)

    @declared_attr
    def tgl(self):
        return Column(
                DateTime(timezone=True), nullable=False, default=datetime.now)

    @declared_attr
    def iso_request(self):
        return Column(String(1024), nullable=False)

    @declared_attr
    def transmission(self):
        return Column(DateTime(timezone=True), nullable=False)

    @declared_attr
    def settlement(self):
        return Column(Date, nullable=False)

    @declared_attr
    def stan(self):
        return Column(Integer, nullable=False)

    @declared_attr
    def invoice_id(self):
        return Column(
                Integer, ForeignKey('bphtb.bphtb_sspd.id'), nullable=False)

    @declared_attr
    def invoice_no(self):
        return Column(String(32), nullable=False)

    @declared_attr
    def ntb(self):
        return Column(String(32), nullable=False)

    @declared_attr
    def ntp(self):
        return Column(String(32), nullable=False, unique=True)

    @declared_attr
    def bank_id(self):
        return Column(Integer)

    @declared_attr
    def channel_id(self):
        return Column(Integer)

    @declared_attr
    def bank_ip(self):
        return Column(String(15), nullable=False)