from db.base import Base
from sqlalchemy import Column, String, Boolean, DateTime, func, ForeignKey, JSON
import uuid

class APIKey(Base):
    __tablename__ = "api_keys"
    id = Column(String(36), primary_key=True, default=lambda: str(uuid.uuid4()))
    user_id = Column(String(36), ForeignKey("users.id"), nullable=False)
    name = Column(String(100))
    key_prefix = Column(String(10))
    key_hash = Column(String(255), nullable=False)
    environment = Column(String(10))
    scopes = Column(JSON, default=[])
    is_active = Column(Boolean, default=True)
    expires_at = Column(DateTime, nullable=True)
    last_used_at = Column(DateTime, nullable=True)
    created_at = Column(DateTime, server_default=func.now())
    revoked_at = Column(DateTime, nullable=True)
