package org.dromara.main.domain.vo;

import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import org.dromara.main.domain.MainStudent;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
@AutoMapper(target = MainStudent.class)
public class MainStudentVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 学员ID
     */
    private Long id;

    /**
     * 学员展示编号(如U2023071567)
     */
    private String studentNo;

    /**
     * 学员姓名
     */
    private String name;

    /**
     * 联络手机号
     */
    private String mobile;

    /**
     * 电子邮箱
     */
    private String email;

    /**
     * 证件号码
     */
    private String idCardNumber;

    /**
     * 性别（0男 1女 2未知）
     */
    private String gender;

    /**
     * 头像ID(关联oss表)
     */
    private Long avatar;

    @Translation(type=TransConstant.OSS_ID_TO_URL,mapper="avatar")
    private String avatarUrl;

    /**
     * 用户类型（1付费用户 2普通用户 3黑名单）
     */
    private String userType;

    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "userType", other = "main_student_type")
    private String userTypeLabel;

    /**
     * 历史累计消费金额
     */
    private BigDecimal totalAmount;

    /**
     * 求职状态/到岗时间(如:一周内到岗)
     */
    private String availability;

    /**
     * 求职意向(岗位ID或名称,逗号分隔)
     */
    private String jobIntention;

    /**
     * 意向公司列表(公司名称,逗号分隔)
     */
    private String intentionCompanies;

    /**
     * 建议类型(1全职 2实习 3兼职)
     */
    private String jobType;

    /**
     * 毕业/就读院校
     */
    private String schoolName;

    /**
     * 学历要求(字典:main_education)
     */
    private String education;

    /**
     * 当前年级(字典:main_experience)
     */
    private String grade;

    /**
     * 实习时长(字典:main_internship_duration)
     */
    private String internshipDuration;

    /**
     * 个人简历附件ID(关联oss表)
     */
    private Long resumeFile;

    /**
     * 账号状态（0正常 1停用）
     */
    private String status;

    /**
     * 最后登录时间
     */
    private Date loginDate;

    /**
     * 创建日期
     */
    private Date createTime;

    /**
     * 最后信息更新时间
     */
    private Date updateTime;

    /**
     * 备注信息
     */
    private String remark;

    /**
     * 教育经历列表
     */
    private List<MainStudentEducationVo> educationList;

    /**
     * 工作经历列表
     */
    private List<MainStudentExperienceVo> experienceList;

    /**
     * 项目经历列表
     */
    private List<MainStudentProjectVo> projectList;

}
