package com.yc.ship.module.trade.controller.admin.visitor.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.yc.ship.framework.desensitize.core.slider.annotation.IdCardDesensitize;
import com.yc.ship.framework.desensitize.core.slider.annotation.MobileDesensitize;
import com.yc.ship.module.trade.dal.dataobject.order.TradeVisitorDO;
import com.yc.ship.module.trade.enums.CredentialTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 订单游客信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class VisitorRespVO {

    @Schema(description = "主键")
    private Long id;

    @Schema(description = "订单ID")
    private Long orderId;

    /**
     * 游客姓名
     */
    @Schema(description = "游客姓名")
    private String name;

    /**
     * 性别
     */
    @Schema(description = "性别")
    private Integer gender;

    /**
     * 证件号
     */
    @Schema(description = "证件号")
    @IdCardDesensitize
    private String credentialNo;

    /**
     * 国籍
     */
    @Schema(description = "国籍")
    private String nationality;

    /**
     * 证件类型
     * 关联 {@link CredentialTypeEnum}
     */
    @Schema(description = "证件类型")
    private Integer credentialType;

    /**
     * 手机号
     */
    @MobileDesensitize
    @Schema(description = "手机号")
    private String mobile;

    @Schema(description = "保险编号")
    private String policyNo;

    /**
     * 是否投保 0否 1是
     */
    @Schema(description = "投保状态")
    private Integer isInsure;

    @Schema(description = "投保信息")
    private String insureMsg;

    @Schema(description = "年龄", example = "")
    private Integer age;

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

    @Schema(description = "订单状态")
    private Integer orderStatus;

    @Schema(description = "航次名称")
    private String voyageName;

    @Schema(description = "保险ID")
    private Long insuranceId;

}