Spaces:
Sleeping
Sleeping
| from sqlalchemy import String, DateTime, ForeignKey, func | |
| from sqlalchemy.orm import Mapped, mapped_column, relationship | |
| from app.db.base import Base | |
| class ApiKey(Base): | |
| __tablename__ = "api_keys" | |
| id: Mapped[int] = mapped_column(primary_key=True) | |
| user_id: Mapped[int] = mapped_column(ForeignKey("users.id", ondelete="CASCADE"), index=True, nullable=False) | |
| key_hash: Mapped[str] = mapped_column(String(255), unique=True, index=True, nullable=False) | |
| name: Mapped[str] = mapped_column(String(200), nullable=False) | |
| created_at: Mapped[DateTime] = mapped_column(DateTime(timezone=True), server_default=func.now(), nullable=False) | |
| last_used_at: Mapped[DateTime | None] = mapped_column(DateTime(timezone=True), nullable=True) | |
| expires_at: Mapped[DateTime | None] = mapped_column(DateTime(timezone=True), nullable=True) | |
| user = relationship("User", back_populates="api_keys") | |