| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- from datetime import datetime
- from typing import Optional
- from pydantic import BaseModel, ConfigDict, Field, model_validator
- class EnterpriseApplyInviteSchema(BaseModel):
- """申请企业邀请码请求模型"""
- identity_type: str = Field(description="身份类型: ALIPAY_USER_ID/ALIPAY_LOGON_ID/ISV_USER_ID")
- identity: Optional[str] = Field(default=None, description="企业管理员身份标识")
- identity_open_id: Optional[str] = Field(default=None, description="企业管理员openId")
- @model_validator(mode="after")
- def validate_fields(self):
- """
- 校验字段约束。
- 返回:
- - EnterpriseApplyInviteSchema: 校验后的同一实例。
- 异常:
- - ValueError: 字段不满足约束时抛出。
- """
- if not self.identity and not self.identity_open_id:
- raise ValueError("identity 和 identity_open_id 至少需要一个不为空")
- return self
- class EnterpriseBaseInfoSchema(BaseModel):
- """企业基本信息"""
- industry: Optional[str] = Field(default=None, description="企业所属行业")
- enterprise_code: Optional[str] = Field(default=None, description="企业代码")
- enterprise_name: Optional[str] = Field(default=None, description="企业名称")
- class EnterpriseProfilesSchema(BaseModel):
- """企业扩展参数"""
- group_app_id: Optional[str] = Field(default=None, description="分组AppId")
- access_channel: Optional[str] = Field(default=None, description="接入渠道: IOT_NFC")
- credit_applicant_mobile: Optional[str] = Field(default=None, description="授信申请人手机号")
- pc_invite_url_mode: Optional[str] = Field(default=None, description="PC邀请URL模式: webpage")
- create_iot_group: Optional[bool] = Field(default=None, description="是否创建IoT分组")
- class EnterpriseCreateOrUpdateSchema(BaseModel):
- """
- 创建或更新企业
- """
- enterprise_id: Optional[str] = Field(default=None, max_length=264, description="企业ID(业务主键)")
- out_biz_no: Optional[str] = Field(default=None, max_length=264, description="外部业务号")
- account_id: Optional[str] = Field(default=None, max_length=264, description="支付宝账号ID")
- name: Optional[str] = Field(default=None, max_length=228, description="企业名称")
- short_name: Optional[str] = Field(default=None, max_length=564, description="企业简称")
- status: Optional[str] = Field(default=None, description="企业状态")
- identity_type: Optional[str] = Field(default=None, description="身份类型: ALIPAY_USER_ID/ALIPAY_LOGON_ID/ISV_USER_ID")
- identity: Optional[str] = Field(default=None, description="企业管理员身份标识")
- identity_open_id: Optional[str] = Field(default=None, description="企业管理员openId")
- register_mode: Optional[str] = Field(default=None, description="注册模式: NORMAL/ISV_AGENT/ISV_VIRTUAL")
- sign_fund_way: Optional[str] = Field(default=None, description="签约出资方式: BALANCE/CREDIT/CORPORATE_CARD")
- base_info: Optional[EnterpriseBaseInfoSchema] = Field(default=None, description="企业基本信息")
- profiles: Optional[EnterpriseProfilesSchema] = Field(default=None, description="扩展参数")
- remark: Optional[str] = Field(default=None, description="备注")
- def validate_enterprise_id(self):
- if not self.enterprise_id:
- raise ValueError("enterprise_id 需要不为空")
- return self
-
- class EnterpriseOutSchema(BaseModel):
- """企业响应模型"""
- model_config = ConfigDict(from_attributes=True)
- id: int = Field(description="主键ID")
- enterprise_id: Optional[str] = Field(default=None, description="企业ID(业务主键)")
- out_biz_no: Optional[str] = Field(default=None, description="外部业务号")
- account_id: Optional[str] = Field(default=None, description="支付宝账号ID")
- name: Optional[str] = Field(default=None, description="企业名称")
- short_name: Optional[str] = Field(default=None, description="企业简称")
- status: str = Field(description="状态: ENTERPRISE_CREATE/ENTERPRISE_ACTIVATED/ENTERPRISE_UNSIGN/ENTERPRISE_WITHDRAW")
- sign_url: Optional[str] = Field(default=None, description="签约链接")
- pc_invite_url: Optional[str] = Field(default=None, description="邀请URL")
- invite_time: Optional[datetime] = Field(default=None, description="邀请码创建时间")
- expire_time: Optional[datetime] = Field(default=None, description="链接过期时间")
- identity_type: Optional[str] = Field(default=None, description="企业管理员身份类型")
- identity: Optional[str] = Field(default=None, description="企业管理员身份标识")
- identity_open_id: Optional[str] = Field(default=None, description="企业管理员openId")
- register_mode: Optional[str] = Field(default=None, description="注册模式")
- sign_fund_way: Optional[str] = Field(default=None, description="签约出资方式")
- base_info: Optional[dict] = Field(default=None, description="企业基本信息")
- profiles: Optional[dict] = Field(default=None, description="扩展参数")
- created_time: datetime = Field(description="创建时间")
- updated_time: datetime = Field(description="更新时间")
- class EnterpriseInviteOutSchema(BaseModel):
- """企业邀请响应"""
- model_config = ConfigDict(from_attributes=True)
- pc_invite_url: str = Field(description="邀请URL")
- invite_time: Optional[datetime] = Field(default=None, description="邀请码创建时间")
- expire_time: Optional[datetime] = Field(default=None, description="链接过期时间")
- class EnterpriseListOutSchema(BaseModel):
- """企业列表响应"""
- model_config = ConfigDict(from_attributes=True)
- account_id: Optional[str] = Field(default=None, description="支付宝账号ID")
- enterprise_id: Optional[str] = Field(default=None, description="企业ID")
- name: Optional[str] = Field(default=None, description="企业名称")
- short_name: Optional[str] = Field(default=None, description="企业简称")
- status: str = Field(description="状态")
- created_time: datetime = Field(description="创建时间")
- class EnterpriseOperationOutSchema(BaseModel):
- """企业操作响应"""
- model_config = ConfigDict(from_attributes=True)
- enterprise_id: Optional[str] = Field(default=None, description="企业ID(业务主键)")
- out_biz_no: Optional[str] = Field(default=None, description="外部业务号")
|