8fe8047429
- 路由:GET/POST/PUT/DELETE /api/v1/companies - 支持分页、关键词搜索、行业/阶段筛选 - 租户隔离:只能操作本租户企业 - 测试:11 个企业 CRUD 测试,全部 passed(总计 26 tests)
55 lines
1.6 KiB
Python
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
|