Spaces:
Running
Running
| 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) | |