Files
AIPortPilot/backend/app/schemas/company.py
T
selfrelease 8fe8047429 feat(backend): T1.2 企业档案 CRUD — 列表/详情/创建/更新/删除
- 路由:GET/POST/PUT/DELETE /api/v1/companies
- 支持分页、关键词搜索、行业/阶段筛选
- 租户隔离:只能操作本租户企业
- 测试:11 个企业 CRUD 测试,全部 passed(总计 26 tests)
2026-07-18 21:57:02 +08:00

55 lines
1.6 KiB
Python

"""企业相关 Pydantic schema。"""
from datetime import datetime
from pydantic import BaseModel, Field
class CompanyCreate(BaseModel):
"""创建企业请求。"""
name: str = Field(..., min_length=1, max_length=200)
industry: str | None = Field(default=None, max_length=100)
stage: str | None = Field(default=None, max_length=50)
logo_url: str | None = Field(default=None, max_length=500)
description: str | None = None
total_funding: str | None = Field(default=None, max_length=50)
website: str | None = Field(default=None, max_length=500)
class CompanyUpdate(BaseModel):
"""更新企业请求。"""
name: str | None = Field(default=None, min_length=1, max_length=200)
industry: str | None = Field(default=None, max_length=100)
stage: str | None = Field(default=None, max_length=50)
logo_url: str | None = Field(default=None, max_length=500)
description: str | None = None
total_funding: str | None = Field(default=None, max_length=50)
website: str | None = Field(default=None, max_length=500)
class CompanyResponse(BaseModel):
"""企业信息响应。"""
id: str
tenant_id: str
name: str
industry: str | None = None
stage: str | None = None
logo_url: str | None = None
description: str | None = None
founded_at: datetime | None = None
total_funding: str | None = None
website: str | None = None
created_at: datetime
updated_at: datetime
class CompanyListResponse(BaseModel):
"""企业列表响应。"""
items: list[CompanyResponse]
total: int
page: int
page_size: int