Files
keywarden/app/models/access_request.py

13 lines
718 B
Python

from sqlalchemy import ForeignKey, String, DateTime
from sqlalchemy.orm import Mapped, mapped_column
from datetime import datetime, timezone
from app.models.user import Base
class AccessRequest(Base):
__tablename__ = "access_requests"
id: Mapped[int] = mapped_column(primary_key=True)
user_id: Mapped[int] = mapped_column(ForeignKey("users.id", ondelete="CASCADE"))
server_id: Mapped[int] = mapped_column(ForeignKey("servers.id", ondelete="CASCADE"))
status: Mapped[str] = mapped_column(String(16), default="requested") # requested|approved|denied|expired
expires_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True))
reason: Mapped[str | None] = mapped_column(String(512))