package com.yc.ship.module.trade.api.contract.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
 * @author le'yang
 */
@Schema(description = "RPC 服务 - Contract 创建合同 Request DTO")
@Data
public class ContractApplyReqDTO {

    @Schema(description = "订单 ID")
    @NotNull(message = "订单Id不能为空")
    private Long orderId;

    @Schema(description = "订单编号")
    private String orderNo;

    @Schema(description = "出行日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date travelDate;

    @Schema(description = "结束日期，YYYY-MM-DD（国内游必填）")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endDate;

    @Schema(description = "出行人姓名")
    private String travelerName;

    @Schema(description = "出行人手机号")
    private String travelerMobile;

    @Schema(description = "经办人姓名（订单创建人）")
    private String operatorName;

    @Schema(description = "证件类型，1：身份证，2：士官证，3：港澳通行证，4：护照，5：赴台证，6：回乡证，7：台胞证，8：其他")
    private String travelerIdCardType;

    @Schema(description = "证件号")
    private String travelerIdCardNo;

    @Schema(description = "手机号")
    private String operatorMobile;

    @Schema(description = "订单金额")
    private BigDecimal orderAmount;

    @Schema(description = "出行人数量")
    private Integer touristQuantity;

    @Schema(description = "出行人信息")
    private List<ContractTouristDTO> contractTouristList;

    @Schema(description = "行程描述")
    private String tripDescription;

    @Schema(description = "合同模版id")
    private String templateId;

    @Schema(description = "1：现金，2：转账，3：线上支付")
    private Integer payType;

    @Schema(description = "线路名称", example = "true")
    private String routeName;

    @Schema(description = "行程天数", example = "true")
    private Integer days;
}
