package com.starry.admin.modules.clerk.module.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

/**
 * 店员分页查询对象
 *
 * @author admin
 * @since 2024-03-30
 */
@Data
public class PlayClerkUserReturnVo {


    /**
     * UUID
     */
    private String id;

    /**
     * 店员昵称
     */
    private String nickname;

    /**
     * 店员等级
     */
    private String levelId;

    /**
     * 店员等级
     */
    private String levelName;


    /**
     * 分组ID
     */
    private String groupId;


    /**
     * 分组ID
     */
    private String groupName;


    /**
     * 性别[0:未知;1:男;2:女]
     */
    private String sex;

    /**
     * 头像
     */
    private String avatar;

    /**
     * 音频
     */
    private String audio;

    /**
     * 星座
     */
    private String constellation;

    /**
     * 标签
     */
    private List<String> label = new ArrayList<>();

    /**
     * 相册
     */
    private List<String> album = new ArrayList<>();

    /**
     * 个性签名
     */
    private String signature;

    /**
     * 年龄
     */
    private Integer age;

    /**
     * 所在省份
     */
    private String province;

    /**
     * 所在城市
     */
    private String city;

    /**
     * 在线状态【1：在线，0：离线】
     */
    private String onlineState;

    /**
     * 上架状态【1：上架，0：下架】
     */
    private String listingState;

    /**
     * 实名状态【1：已实名，0：未实名】
     */
    private String realState;

    /**
     * 是否必须实名【0:非必须实名;1:必须实名;2:跟随店铺设置】
     */
    private String mandatoryRealState;

    /**
     * 随机接单状态【1：允许，0：禁止】
     */
    private String randomOrderState;

    /**
     * 地址
     */
    private String address;

    /**
     * 地址
     */
    private String remark;

    /**
     * 订单列表
     */
    @JsonIgnore
    private List<PlayOrderInfoEntity> orderInfos;

    /**
     * 订单总数
     */
    private String orderNumber;

    /**
     * 续单总数
     */
    private String orderContinueNumber;

    /**
     * 订单总金额
     */
    private BigDecimal orderTotalAmount;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime addTime;


    /**
     * 入职时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDateTime entryTime;

    /**
     * 离职时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDateTime resignationTime;

    /**
     * 是否推荐状态（1：已推荐，0：未推荐）
     */
    private String recommendationState;

    /**
     * 是否置顶状态（1：已置顶，0：未置顶）
     */
    private String pinToTopState;

    /**
     * 显示状态【1：显示，0：隐藏】
     */
    private String displayState;

    /**
     * 是否固定等级(0:固定等级，1:不固定)
     */
    private String fixingLevel;


    /**
     * 在职状态（1：在职，0：离职）
     */
    private String onboardingState;


    /**
     * 在职天数
     */
    private Integer workingHours = 0;


}
