from app.core.database import Base
from sqlalchemy import Column, Integer, String, DateTime, Enum, ForeignKey
from sqlalchemy.orm import relationship
from datetime import datetime
import enum


class AuditAction(enum.Enum):
    booking_create = "booking_create"
    booking_delete = "booking_delete"
    topup_create = "topup_create"
    # Weitere Aktionen können hier ergänzt werden, z. B.:
    # topup_confirm = "topup_confirm"
    # user_update = "user_update"


class AuditLog(Base):
    __tablename__ = "audit_logs"

    id = Column(Integer, primary_key=True, index=True)
    user_id = Column(Integer, ForeignKey("users.id"), nullable=False)
    action = Column(String, nullable=False)
    amount_cents = Column(Integer, nullable=True)
    old_balance_cents = Column(Integer, nullable=True)
    new_balance_cents = Column(Integer, nullable=True)
    info = Column(String, nullable=True)
    created_at = Column(DateTime, default=datetime.utcnow)

    user = relationship("User")
