mirror of
https://github.com/rzmk/learnhouse.git
synced 2025-12-19 04:19:25 +00:00
feat: init roles + authorship detection
This commit is contained in:
parent
38288e8a57
commit
0595bfdb3f
16 changed files with 109 additions and 236 deletions
|
|
@ -1,18 +0,0 @@
|
|||
from typing import Optional
|
||||
from sqlmodel import Field, SQLModel
|
||||
from enum import Enum
|
||||
|
||||
|
||||
class CourseAuthorshipEnum(str, Enum):
|
||||
CREATOR = "CREATOR"
|
||||
MAINTAINER = "MAINTAINER"
|
||||
REPORTER = "REPORTER"
|
||||
|
||||
|
||||
class CourseAuthor(SQLModel, table=True):
|
||||
id: Optional[int] = Field(default=None, primary_key=True)
|
||||
course_id: int = Field(default=None, foreign_key="course.id")
|
||||
user_id: int = Field(default=None, foreign_key="user.id")
|
||||
authorship: CourseAuthorshipEnum = CourseAuthorshipEnum.CREATOR
|
||||
creation_date: str
|
||||
update_date: str
|
||||
20
apps/api/src/db/resource_authors.py
Normal file
20
apps/api/src/db/resource_authors.py
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
from enum import Enum
|
||||
from typing import Optional, Union
|
||||
from pydantic import BaseModel
|
||||
from sqlalchemy import JSON, Column
|
||||
from sqlmodel import Field, SQLModel
|
||||
|
||||
|
||||
class ResourceAuthorshipEnum(str, Enum):
|
||||
CREATOR = "CREATOR"
|
||||
MAINTAINER = "MAINTAINER"
|
||||
REPORTER = "REPORTER"
|
||||
|
||||
|
||||
class ResourceAuthor(SQLModel, table=True):
|
||||
id: Optional[int] = Field(default=None, primary_key=True)
|
||||
resource_uuid: str
|
||||
user_id: int = Field(default=None, foreign_key="user.id")
|
||||
authorship: ResourceAuthorshipEnum = ResourceAuthorshipEnum.CREATOR
|
||||
creation_date: str = ""
|
||||
update_date: str = ""
|
||||
|
|
@ -36,7 +36,7 @@ class UserRead(UserBase):
|
|||
class PublicUser(UserRead):
|
||||
pass
|
||||
|
||||
class AnonymousUser(UserRead):
|
||||
class AnonymousUser(SQLModel):
|
||||
id: str = "anonymous"
|
||||
username: str = "anonymous"
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue