Implement student roster login gating

This commit is contained in:
2026-07-07 18:45:07 +08:00
parent 4f11d8632c
commit 29f25dd767
8 changed files with 318 additions and 21 deletions

View File

@@ -39,6 +39,28 @@ class AdminUserUpdateRequest(BaseModel):
expiredAt: datetime | None = None
class AdminUserCreateRequest(BaseModel):
phone: str = Field(min_length=11, max_length=20)
name: str = Field(min_length=1, max_length=50)
nickname: str | None = Field(default=None, max_length=50)
status: int = Field(default=1, ge=0, le=1)
dailyChatLimit: int | None = Field(default=None, ge=0, le=100000)
expiredAt: datetime | None = None
class AdminUserImportItem(BaseModel):
phone: str = Field(default="", max_length=20)
name: str = Field(default="", max_length=50)
nickname: str | None = Field(default=None, max_length=50)
status: int = Field(default=1, ge=0, le=1)
dailyChatLimit: int | None = Field(default=None, ge=0, le=100000)
expiredAt: datetime | None = None
class AdminUserImportRequest(BaseModel):
students: list[AdminUserImportItem] = Field(default_factory=list)
class KnowledgeSaveRequest(BaseModel):
name: str = Field(min_length=1, max_length=100)
feishuSpaceId: str = Field(min_length=1, max_length=100)