• wanli's avatar
    update · e339fd7a
    wanli authored
    e339fd7a
system.py 3.41 KB
from datetime import datetime
from . import BaseSchema
from marshmallow import fields, validate, RAISE, INCLUDE, EXCLUDE

class AddProjectSchema(BaseSchema):
    type = fields.String(required=False, allow_none=True)
    title = fields.String(required=True, validate=validate.Length(min=2, max=50))
    code = fields.String(required=False, allow_none=True)
    amount = fields.Decimal(required=False, default=0, allow_none=True) # 总金额
    consult_type = fields.String(required=False, allow_none=True) # 咨询项目类型
    contract_sign_at = fields.String(required=False, allow_none=True) # 项目签订日期
    party_a = fields.String(required=False, allow_none=True) # 项目甲方
    party_b = fields.String(required=False, allow_none=True) # 项目乙方
    leader = fields.String(required=False, allow_none=True) # 项目开发人
    level = fields.String(required=False, allow_none=True) # 项目开发级别
    source = fields.String(required=False, allow_none=True) # 项目来源
    introducer = fields.String(required=False, allow_none=True) # 同业引进人
    standard_type = fields.String(required=False, allow_none=True) # 体系类型
    review_type = fields.String(required=False, allow_none=True) # 审核类型
    customer_addr = fields.String(required=False, allow_none=True) # 客户地址
    customer_contact = fields.String(required=False, allow_none=True) # 客户联系人
    customer_phone = fields.String(required=False, allow_none=True) # 客户联系电话
    ascription = fields.String(required=False, allow_none=True) # 项目归属
    risk = fields.String(required=False, allow_none=True) # 风险级别
    people_nums = fields.Int(required=False, allow_none=True) # 人数
    start_time = fields.DateTime(required=True, default=datetime.now) # 项目开始时间
    end_time = fields.DateTime(required=True, default=datetime.now) # 项目结束时间
    users = fields.List(fields.String(), required=True) # 项目参与者
    flow = fields.List(fields.Dict(), required=False, allow_none=True) # 流程节点列表
    payback = fields.List(fields.Dict(), required=False, allow_none=True) # 回款计划列表
    production = fields.Dict(required=False, allow_none=True)  # 项目费用相关
    remarks = fields.String(required=False, allow_none=True) # 备注

    class Meta:
        unknown = EXCLUDE

class QuerySchema(BaseSchema):
    project = fields.UUID(required=True)

    class Meta:
        unknown = EXCLUDE

class QueryPaybackSchema(BaseSchema):
    project = fields.UUID(required=True)

    class Meta:
        unknown = EXCLUDE

class DeleteProjectUserSchema(BaseSchema):
    uuid = fields.UUID(required=True)
    project = fields.UUID(required=True)

    class Meta:
        unknown = EXCLUDE

class ModifyProjectUserSchema(BaseSchema):
    users = fields.List(fields.UUID, required=True)
    project = fields.UUID(required=True)

    class Meta:
        unknown = EXCLUDE

class UpdateFlowSchema(BaseSchema):
    flow = fields.List(fields.Dict(required=True), required=True)
    uuid = fields.UUID(required=True)

    class Meta:
        unknown = EXCLUDE

class UpdatePaybackSchema(BaseSchema):
    payback = fields.List(fields.Dict(required=True), required=True)
    uuid = fields.UUID(required=True)

    class Meta:
        unknown = EXCLUDE

class UpdateProductionSchema(BaseSchema):
    production = fields.Dict(required=True)
    uuid = fields.UUID(required=True)

    class Meta:
        unknown = EXCLUDE