Spaces:
Running
Running
File size: 2,294 Bytes
4aed8ef 60abdf9 4aed8ef |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
from sqlalchemy import Integer, String, Float, Boolean, DateTime
from sqlalchemy.orm import relationship, mapped_column, Mapped
from src.entity.fraud_details import FraudDetails
from . import Base
class Transaction(Base):
"""
Transaction table
"""
__tablename__ = "transactions"
# Transaction table columns
id: Mapped[int] = mapped_column(primary_key=True)
transaction_number: Mapped[str] = mapped_column(String, nullable=False)
transaction_amount: Mapped[float] = mapped_column(Float, nullable=False)
transaction_datetime: Mapped[DateTime] = mapped_column(DateTime, nullable=False)
transaction_category: Mapped[str] = mapped_column(String, nullable=True)
customer_firstname: Mapped[str] = mapped_column(String, nullable=True)
customer_lastname: Mapped[str] = mapped_column(String, nullable=True)
customer_gender: Mapped[str] = mapped_column(String, nullable=True)
customer_credit_card_number: Mapped[str] = mapped_column('customer_credit_card_num', String, nullable=True)
customer_address_street: Mapped[str] = mapped_column(String, nullable=True)
customer_address_city: Mapped[str] = mapped_column(String, nullable=True)
customer_address_state: Mapped[str] = mapped_column(String, nullable=True)
customer_address_zip: Mapped[str] = mapped_column(String, nullable=True)
customer_address_latitude: Mapped[float] = mapped_column(Float, nullable=True)
customer_address_longitude: Mapped[float] = mapped_column(Float, nullable=True)
customer_address_city_population: Mapped[int] = mapped_column(Integer, nullable=True)
customer_job: Mapped[str] = mapped_column(String, nullable=True)
customer_dob: Mapped[DateTime] = mapped_column(DateTime, nullable=True)
merchant_name: Mapped[str] = mapped_column(String, nullable=True)
merchant_address_latitude: Mapped[float] = mapped_column(Float, nullable=True)
merchant_address_longitude: Mapped[float] = mapped_column(Float, nullable=True)
is_fraud: Mapped[bool] = mapped_column(Boolean, nullable=True)
is_real_fraud: Mapped[bool] = mapped_column(Boolean, nullable=True)
# Dependent table
fraud_details: Mapped[FraudDetails] = relationship("FraudDetails", back_populates="transaction", cascade="all, delete-orphan", uselist=False)
|