feat(backend): T1.2 企业档案 CRUD — 列表/详情/创建/更新/删除
- 路由:GET/POST/PUT/DELETE /api/v1/companies - 支持分页、关键词搜索、行业/阶段筛选 - 租户隔离:只能操作本租户企业 - 测试:11 个企业 CRUD 测试,全部 passed(总计 26 tests)
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
"""企业相关 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
|
||||
Reference in New Issue
Block a user