package com.persagy.adm.steward.entity;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @Description: ProjectDeliverReq 请求交付工具的接口
 * @Author: qiaopengqiang
 * @Date: 2022-01-17
 * @Version:v1.0
 */
@Data
public class ProjectDeliverReq implements Serializable {

    private static final long serialVersionUID = 7257238883268681314L;

    /**
     * 项目id
     */
    private Long projectId;

    /**
     * 订单编号
     */
    private Long orderSn;

    /**
     * 管家账号
     */
    private String stewardAccount;

    /**
     * 项目名称（购买的商品名称）
     */
    private String projectName;

    /**
     * 下单时间
     */
    private Date orderTime;

    /**
     * 支付时间
     */
    private Date payTime;

    /**
     * 子交付计划汇总数量
     */
    private Integer planNumSum;

    /**
     * 实施人数
     */
    private Integer implManNum;

    /**
     * 集团编码
     */
    private String blocCode;

    /**
     * 集团name
     */
    private String blocName;

    /**
     * 每一个项目下都有一个或者多个计划
     */
    private List<PlanDeliverReq> planDeliverReqs;

    /**
     * 每一个项目都有一个或者多个楼层
     */
    private List<StoreyInfoReq> storeyInfoReqs;

    @Data
    public static class PlanDeliverReq implements Serializable {

        private static final long serialVersionUID = 6855330552397128142L;
        /**
         * 主键id
         */
        private Long id;

        /**
         * 交付计划名称
         */
        private String planName;

        /**
         * 每一个计划下都有多个验收商品详情
         */
        private List<PlanInfoDeliverReq> planInfoDeliverReqList;

    }

    @Data
    public static class PlanInfoDeliverReq implements Serializable {

        private static final long serialVersionUID = 2232909478659794811L;

        /**
         * 验收商品id
         */
        private Long planInfoId;

        /**
         * 商品名称（规格名称，代表唯一的商品名称）
         */
        private String productName;

        /**
         * 商品编码
         */
        private String productSkuCode;

        /**
         * 商品对应的实施数量
         */
        private Long productNum;

        /**
         * 开始时间
         */
        private Date startTime;

        /**
         * 结束时间
         */
        private Date endTime;
    }

    @Data
    public static class StoreyInfoReq implements Serializable {

        private static final long serialVersionUID = 7645105006381797684L;
        /**
         * 楼层id
         */
        private Integer storeyId;

        private String storeyName;
    }
}
