Files
Aislo/B01_Dashboard/B01_Dashboard_Schema.py
T
2026-07-08 20:28:24 +09:00

62 lines
2.0 KiB
Python

"""B01_Dashboard 요청 스키마."""
from pydantic import BaseModel, Field
class UpdateUserRequest(BaseModel):
name: str = Field(min_length=1, max_length=100)
position: str | None = Field(default=None, max_length=100)
department: str | None = Field(default=None, max_length=100)
phone: str | None = Field(default=None, max_length=50)
class CreateCompanyRequest(BaseModel):
name: str = Field(min_length=1, max_length=255)
business_registration_number: str = Field(min_length=1, max_length=20)
business_address: str | None = Field(default=None, max_length=500)
business_owner: str | None = Field(default=None, max_length=100)
class JoinCompanyRequest(BaseModel):
company_id: int = Field(gt=0)
class AddMemberRequest(BaseModel):
email: str = Field(min_length=3, max_length=255)
class ProcessJoinRequest(BaseModel):
action: str = Field(pattern="^(APPROVE|REJECT)$")
reason: str | None = Field(default=None, max_length=500)
class ChangeUserRoleRequest(BaseModel):
role: str = Field(pattern="^(SYSTEM_ADMIN|ADMIN|USER)$")
class AssignCompanyRequest(BaseModel):
company_id: int | None = Field(default=None, gt=0)
class UpdateProjectRequest(BaseModel):
name: str = Field(min_length=1, max_length=255)
region: str | None = Field(default=None, max_length=100)
road_type: str | None = Field(default=None, max_length=100)
project_year: int | None = Field(default=None, ge=1900, le=2100)
estimated_length_m: float | None = Field(default=None, ge=0)
memo: str | None = Field(default=None, max_length=5000)
status: str | None = Field(default=None, max_length=50)
class AdminUpdateUserRequest(UpdateUserRequest):
status: str | None = Field(
default=None, pattern="^(NO_COMPANY|PENDING|ACTIVE|INACTIVE|REJECTED)$"
)
class AutomationRequest(BaseModel):
name: str = Field(min_length=1, max_length=100)
logic_type: str = Field(min_length=1, max_length=50)
config_json: dict = Field(default_factory=dict)
status: str = Field(default="DRAFT", pattern="^(DRAFT|ACTIVE|INACTIVE)$")