from sqlalchemy import Column, Integer, String
from sqlalchemy import Boolean, ForeignKey, DateTime
from datetime import datetime, timedelta

from app.core.database import Base

class OTPVerification(Base):

    __tablename__ = "otp_verifications"

    id = Column(Integer, primary_key=True, index=True)

    user_id = Column(Integer, ForeignKey("users.id"))

    otp_code = Column(String(6))

    purpose = Column(String(50))

    is_used = Column(Boolean, default=False)

    expires_at = Column(
        DateTime,
        default=lambda: datetime.utcnow() + timedelta(minutes=10)
    )

    created_at = Column(DateTime, default=datetime.utcnow)