feat: invite code
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import datetime
|
||||
from typing import TYPE_CHECKING, Optional
|
||||
|
||||
from sqlalchemy import BigInteger, Table, ForeignKey, Column
|
||||
@@ -32,7 +33,6 @@ user_pay_rate = Table(
|
||||
)
|
||||
|
||||
|
||||
|
||||
class Permission(BaseModel):
|
||||
__tablename__ = 'permissions'
|
||||
key: Mapped[str] = mapped_column(primary_key=True)
|
||||
@@ -83,7 +83,7 @@ class User(BaseModel):
|
||||
is_blocked: Mapped[bool] = mapped_column(nullable=False, server_default='0')
|
||||
is_deleted: Mapped[bool] = mapped_column(nullable=False, server_default='0')
|
||||
|
||||
role_key: Mapped[int] = mapped_column(ForeignKey('roles.key'), server_default=UserRole.user)
|
||||
role_key: Mapped[str] = mapped_column(ForeignKey('roles.key'), server_default=UserRole.user)
|
||||
role: Mapped["Role"] = relationship(
|
||||
'Role',
|
||||
lazy='joined'
|
||||
@@ -139,6 +139,19 @@ class User(BaseModel):
|
||||
)
|
||||
|
||||
|
||||
class InviteCode(BaseModel):
|
||||
__tablename__ = 'invite_codes'
|
||||
code: Mapped[str] = mapped_column(primary_key=True)
|
||||
|
||||
is_activated: Mapped[bool] = mapped_column(nullable=False, default=False)
|
||||
activated_by_id: Mapped[Optional[int]] = mapped_column(ForeignKey('users.id'))
|
||||
activated_by: Mapped["User"] = relationship('User', foreign_keys=[activated_by_id])
|
||||
|
||||
created_at: Mapped[datetime.datetime] = mapped_column(nullable=False)
|
||||
created_by_id: Mapped[int] = mapped_column(ForeignKey('users.id'))
|
||||
created_by: Mapped["User"] = relationship('User', foreign_keys=[created_by_id])
|
||||
|
||||
|
||||
class Position(BaseModel):
|
||||
__tablename__ = 'positions'
|
||||
key: Mapped[str] = mapped_column(primary_key=True)
|
||||
|
||||
Reference in New Issue
Block a user