feat: add organization and member management APIs for admin and internal use
This commit is contained in:
37
app/schemas/members.py
Normal file
37
app/schemas/members.py
Normal 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]
|
||||
29
app/schemas/organizations.py
Normal file
29
app/schemas/organizations.py
Normal 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
|
||||
Reference in New Issue
Block a user