feat: add organization and member management APIs for admin and internal use

This commit is contained in:
Chris
2026-03-30 01:23:02 +08:00
parent f00b8cefaa
commit 0f0b197b32
14 changed files with 701 additions and 2 deletions

37
app/schemas/members.py Normal file
View File

@@ -0,0 +1,37 @@
from pydantic import BaseModel
from app.schemas.organizations import OrganizationSummary
class MemberCreateRequest(BaseModel):
authentik_sub: str
email: str | None = None
display_name: str | None = None
is_active: bool = True
class MemberUpdateRequest(BaseModel):
email: str | None = None
display_name: str | None = None
is_active: bool | None = None
class MemberSummary(BaseModel):
id: str
authentik_sub: str
authentik_user_id: int | None = None
email: str | None = None
display_name: str | None = None
is_active: bool
class MemberListResponse(BaseModel):
items: list[MemberSummary]
total: int
limit: int
offset: int
class MemberOrganizationsResponse(BaseModel):
member: MemberSummary
organizations: list[OrganizationSummary]

View File

@@ -0,0 +1,29 @@
from pydantic import BaseModel
class OrganizationCreateRequest(BaseModel):
org_code: str
name: str
tax_id: str | None = None
status: str = "active"
class OrganizationUpdateRequest(BaseModel):
name: str | None = None
tax_id: str | None = None
status: str | None = None
class OrganizationSummary(BaseModel):
id: str
org_code: str
name: str
tax_id: str | None = None
status: str
class OrganizationListResponse(BaseModel):
items: list[OrganizationSummary]
total: int
limit: int
offset: int