50 lines
945 B
Python
50 lines
945 B
Python
from __future__ import annotations
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class ApprovalOperator(BaseModel):
|
|
user_id: str
|
|
user_name: str
|
|
|
|
|
|
class ApprovalTarget(BaseModel):
|
|
app_code: str
|
|
env: str
|
|
|
|
|
|
class CreateApprovalRequest(BaseModel):
|
|
task_id: str
|
|
risk_level: str
|
|
operator: ApprovalOperator
|
|
action_type: str
|
|
target: ApprovalTarget
|
|
reason: str
|
|
approvers: list[str] = Field(default_factory=list)
|
|
|
|
|
|
class CreateApprovalData(BaseModel):
|
|
approval_id: str
|
|
approval_status: str
|
|
|
|
|
|
class ApprovalDecisionRequest(BaseModel):
|
|
decision: str
|
|
comment: str | None = None
|
|
operator: ApprovalOperator
|
|
|
|
|
|
class ApprovalDetailData(BaseModel):
|
|
approval_id: str
|
|
task_id: str
|
|
approval_status: str
|
|
risk_level: str
|
|
approvers: list[str]
|
|
reason: str | None = None
|
|
created_at: str
|
|
updated_at: str
|
|
|
|
|
|
class ApprovalListData(BaseModel):
|
|
approvals: list[ApprovalDetailData]
|