package org.dromara.main.domain.vo;

import cn.idev.excel.annotation.ExcelProperty;
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.MainAudit;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
@AutoMapper(target = MainAudit.class)
public class MainAuditVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @ExcelProperty(value = "审核ID")
    private Long id;

    @ExcelProperty(value = "审核类型")
    private Integer auditType;

    @ExcelProperty(value = "目标ID")
    private Long targetId;

    @ExcelProperty(value = "审核结果")
    private Integer auditResult;

    @ExcelProperty(value = "审核备注")
    private String auditRemark;

    @ExcelProperty(value = "定金")
    private BigDecimal deposit;

    @ExcelProperty(value = "尾款")
    private BigDecimal finalPayment;

    @ExcelProperty(value = "审核时间")
    private Date auditTime;

    @ExcelProperty(value = "审核人")
    private Long auditBy;

    @ExcelProperty(value = "租户ID")
    private String tenantId;

    @ExcelProperty(value = "创建时间")
    private Date createTime;

    private String applyNo;
    private String companyName;
    private String officialAccount;
    private String officeAddress;
    private String creditCode;
    private Long authLetter;
    private String mobile;
    private String surname;
    private String name;
    private Long avatar;
    private Date applyCreateTime;

    private String postName;
    private String postDescription;
    private String workProvince;
    private String workCity;
    private String workDistrict;
    private String workAddress;
    private String postType;

    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "postType", other = "main_position_type")
    private String postTypeName;

    private String educationRequirement;
    private String salaryType;
    private String salaryRange;
    private Integer recruitNum;
    private Date registrationStartDate;
    private Date registrationEndDate;
    private Integer isUrgent;
    private String schoolRequirement;

    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "schoolRequirement", other = "main_education")
    private String schoolRequirementName;

    private String genderRequirement;

    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "genderRequirement", other = "sys_user_sex")
    private String genderRequirementName;

    private String gradeRequirement;

    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "gradeRequirement", other = "main_experience")
    private String gradeRequirementName;

    private String arrivalTime;

    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "arrivalTime", other = "main_arrival_time")
    private String arrivalTimeName;

    private String internshipDuration;

    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "internshipDuration", other = "main_internship_duration")
    private String internshipDurationName;

    private Integer willingToTravel;
    private String welfareTags;
    private String jobRequirement;
    private String postLevel;

    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "postLevel", other = "main_position_level")
    private String postLevelName;

    private String assessmentTime;
    private BigDecimal gradeA;
    private BigDecimal gradeB;
    private BigDecimal gradeC;
    private String auditByName;
}
