refactor: align backend with company-site-member schema and system-level RBAC groups
This commit is contained in:
85
app/schemas/catalog.py
Normal file
85
app/schemas/catalog.py
Normal file
@@ -0,0 +1,85 @@
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class SystemCreateRequest(BaseModel):
|
||||
system_key: str
|
||||
name: str
|
||||
status: str = "active"
|
||||
|
||||
|
||||
class SystemItem(BaseModel):
|
||||
id: str
|
||||
system_key: str
|
||||
name: str
|
||||
status: str
|
||||
|
||||
|
||||
class ModuleCreateRequest(BaseModel):
|
||||
system_key: str
|
||||
module_key: str
|
||||
name: str
|
||||
status: str = "active"
|
||||
|
||||
|
||||
class ModuleItem(BaseModel):
|
||||
id: str
|
||||
system_key: str | None = None
|
||||
module_key: str
|
||||
name: str
|
||||
status: str
|
||||
|
||||
|
||||
class CompanyCreateRequest(BaseModel):
|
||||
company_key: str
|
||||
name: str
|
||||
status: str = "active"
|
||||
|
||||
|
||||
class CompanyItem(BaseModel):
|
||||
id: str
|
||||
company_key: str
|
||||
name: str
|
||||
status: str
|
||||
|
||||
|
||||
class SiteCreateRequest(BaseModel):
|
||||
site_key: str
|
||||
company_key: str
|
||||
name: str
|
||||
status: str = "active"
|
||||
|
||||
|
||||
class SiteItem(BaseModel):
|
||||
id: str
|
||||
site_key: str
|
||||
company_key: str
|
||||
name: str
|
||||
status: str
|
||||
|
||||
|
||||
class MemberItem(BaseModel):
|
||||
id: str
|
||||
authentik_sub: str
|
||||
email: str | None = None
|
||||
display_name: str | None = None
|
||||
is_active: bool
|
||||
|
||||
|
||||
class ListResponse(BaseModel):
|
||||
items: list
|
||||
total: int
|
||||
limit: int
|
||||
offset: int
|
||||
|
||||
|
||||
class PermissionGroupCreateRequest(BaseModel):
|
||||
group_key: str
|
||||
name: str
|
||||
status: str = "active"
|
||||
|
||||
|
||||
class PermissionGroupItem(BaseModel):
|
||||
id: str
|
||||
group_key: str
|
||||
name: str
|
||||
status: str
|
||||
@@ -1,37 +0,0 @@
|
||||
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]
|
||||
@@ -1,29 +0,0 @@
|
||||
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
|
||||
@@ -7,7 +7,8 @@ class PermissionGrantRequest(BaseModel):
|
||||
display_name: str | None = None
|
||||
scope_type: str
|
||||
scope_id: str
|
||||
module: str
|
||||
system: str
|
||||
module: str | None = None
|
||||
action: str
|
||||
|
||||
|
||||
@@ -15,13 +16,15 @@ class PermissionRevokeRequest(BaseModel):
|
||||
authentik_sub: str
|
||||
scope_type: str
|
||||
scope_id: str
|
||||
module: str
|
||||
system: str
|
||||
module: str | None = None
|
||||
action: str
|
||||
|
||||
|
||||
class PermissionItem(BaseModel):
|
||||
scope_type: str
|
||||
scope_id: str
|
||||
system: str | None = None
|
||||
module: str
|
||||
action: str
|
||||
|
||||
|
||||
Reference in New Issue
Block a user