16 lines
713 B
Python
16 lines
713 B
Python
from datetime import datetime
|
|
|
|
from sqlalchemy import DateTime, ForeignKey, String
|
|
from sqlalchemy.orm import Mapped, mapped_column
|
|
|
|
from app.db.base_class 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)) |