Spaces:
Sleeping
Sleeping
| from sqlalchemy import Column, String, Integer, ForeignKey | |
| from sqlalchemy.dialects.postgresql import UUID | |
| from sqlalchemy.orm import relationship | |
| from backend.app.models.base import BaseDBModel | |
| class WalletTransaction(BaseDBModel): | |
| __tablename__ = "wallet_transactions" | |
| user_id = Column(UUID(as_uuid=True), ForeignKey("users.id", ondelete="CASCADE"), index=True, nullable=False) | |
| booking_id = Column(UUID(as_uuid=True), ForeignKey("bookings.id", ondelete="SET NULL"), nullable=True) | |
| label = Column(String, nullable=False) # e.g. "Wallet top-up via UPI", "Escrow hold for B-2401" | |
| amount = Column(Integer, nullable=False) # positive for credits/refunds, negative for debits/holds | |
| type = Column(String, nullable=False, index=True) # credit, hold, release, refund | |
| # Relationships | |
| user = relationship("User", back_populates="wallet_transactions") | |
| booking = relationship("Booking") | |