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]