"""企查查 VO。""" from __future__ import annotations from typing import Any from pydantic import BaseModel, Field class QichachaCompanyInfoVO(BaseModel): """企业信息响应。""" searchKey: str = Field(..., description="查询关键词") creditCode: str | None = Field(None, description="统一社会信用代码") companyName: str | None = Field(None, description="企业名称") enterprise: dict[str, Any] | None = Field(None, description="工商信息") dishonesty: dict[str, Any] | None = Field(None, description="失信信息") hasDishonesty: bool = Field(False, description="是否存在失信记录") dishonestyCount: int = Field(0, description="失信记录数量") updatedAt: str | None = Field(None, description="更新时间") class QichachaCompanyQueryVO(BaseModel): """企业查询响应。""" success: bool = Field(..., description="是否成功") message: str = Field(..., description="响应消息") data: QichachaCompanyInfoVO | None = Field(None, description="企业信息") errorCode: str | None = Field(None, description="错误码") errorDetails: dict[str, Any] | None = Field(None, description="错误详情") class QichachaBatchQueryVO(BaseModel): """批量企业查询响应。""" success: bool = Field(..., description="是否全部成功") total: int = Field(..., description="查询总数") successCount: int = Field(..., description="成功数") failedCount: int = Field(..., description="失败数") results: list[QichachaCompanyQueryVO] = Field(default_factory=list, description="查询结果") class QichachaRecordStatusVO(BaseModel): """企业缓存记录状态响应。""" exists: bool = Field(..., description="是否存在缓存") searchKey: str = Field(..., description="查询关键词") creditCode: str | None = Field(None, description="统一社会信用代码") companyName: str | None = Field(None, description="企业名称") hasEnterprise: bool = Field(False, description="是否有工商信息") hasDishonesty: bool = Field(False, description="是否有失信信息") updatedAt: str | None = Field(None, description="更新时间") ageDays: int | None = Field(None, description="缓存天数") refreshThresholdDays: int = Field(..., description="刷新阈值") needRefresh: bool = Field(False, description="是否需要刷新")