from sqlalchemy import ForeignKey, Integer, String, Text
from sqlalchemy.orm import relationship, Mapped, mapped_column
from typing import TYPE_CHECKING
from src.apps.base.models.base import Base

if TYPE_CHECKING:
    from typing import Any


class MerchantPaymentHistory(Base):
    """
    MerchantPaymentHistory Model: ORM class for MerchantPaymentHistory Entity
    """

    __tablename__ = "merchant_payment_history"

    id: Mapped[int] = mapped_column(Integer, primary_key=True, index=True, autoincrement=True)
    key: Mapped[str] = mapped_column(String(255))
    value: Mapped[str] = mapped_column(Text)
    label: Mapped[str] = mapped_column(Text)
    group: Mapped[str] = mapped_column(String(255))
    input_type: Mapped[str] = mapped_column(String(255))
    merchant_id: Mapped[int] = mapped_column(Integer, ForeignKey("merchants.id"))
    merchant: Mapped["Merchant"] = relationship("Merchant")
