This commit is contained in:
Sun Tao 2025-08-20 23:05:54 +08:00
parent c8a0a21ef2
commit 3f21c2b2c2
83 changed files with 6355 additions and 0 deletions

View file

@ -0,0 +1,34 @@
from datetime import datetime
from enum import Enum
from pydantic import BaseModel
from sqlmodel import Field, Column, SmallInteger, JSON
from app.model.abstract.model import AbstractModel, DefaultTimes
from sqlalchemy_utils import ChoiceType
class RoleType(int, Enum):
System = 1
Custom = 2
class Role(AbstractModel, DefaultTimes, table=True):
id: int = Field(default=None, primary_key=True)
name: str
description: str = ""
type: RoleType = Field(default=RoleType.Custom.value, sa_column=Column(ChoiceType(RoleType, SmallInteger())))
permissions: list[str] = Field(sa_column=Column(JSON))
class RoleIn(BaseModel):
name: str
description: str = ""
permissions: list[str]
class RoleOut(BaseModel):
id: int
name: str
description: str
type: RoleType
permissions: list[str]
created_at: datetime