package com.huimv.employment.service.registration.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;

import java.time.LocalDateTime;

@Schema(description = "批次登记人员条目")
public class RegistrationBatchWorkerItemResponse {

    @JsonProperty("registration_id")
    @Schema(description = "登记记录 ID")
    private Long registrationId;

    @JsonProperty("worker_id")
    @Schema(description = "临时工档案 ID")
    private Long workerId;

    @JsonProperty("real_name")
    @Schema(description = "姓名")
    private String realName;

    @JsonProperty("confirmed_work_type")
    @Schema(description = "确认工种（申请登记时选择，对应订单用工明细 job_type）", example = "仓库搬运")
    private String confirmedWorkType;

    @JsonProperty("third_party_source")
    @Schema(description = "是否第三方人力来源：0=否（人员登记）；1=是（无临时工，第三方平台匹配）", example = "0")
    private Integer thirdPartySource;

    @JsonProperty("mobile_mask")
    @Schema(description = "脱敏手机号", example = "138****1234")
    private String mobileMask;

    @JsonProperty("reg_status")
    @Schema(description = "登记状态：pending / registering / under_review / contract_signing / completed / verify_failed / rejected")
    private String regStatus;

    @JsonProperty("status_tag")
    @Schema(description = "前端状态样式标签：pending / registering / review / contract / done / fail")
    private String statusTag;

    @JsonProperty("status_text")
    @Schema(description = "状态中文", example = "待签约")
    private String statusText;

    @JsonProperty("fail_reason")
    @Schema(description = "失败原因（核验失败时）")
    private String failReason;

    @JsonProperty("submitted_at")
    @Schema(description = "提交时间")
    private LocalDateTime submittedAt;

    public Long getRegistrationId() {
        return registrationId;
    }

    public void setRegistrationId(Long registrationId) {
        this.registrationId = registrationId;
    }

    public Long getWorkerId() {
        return workerId;
    }

    public void setWorkerId(Long workerId) {
        this.workerId = workerId;
    }

    public String getRealName() {
        return realName;
    }

    public void setRealName(String realName) {
        this.realName = realName;
    }

    public String getConfirmedWorkType() {
        return confirmedWorkType;
    }

    public void setConfirmedWorkType(String confirmedWorkType) {
        this.confirmedWorkType = confirmedWorkType;
    }

    public Integer getThirdPartySource() {
        return thirdPartySource;
    }

    public void setThirdPartySource(Integer thirdPartySource) {
        this.thirdPartySource = thirdPartySource;
    }

    public String getMobileMask() {
        return mobileMask;
    }

    public void setMobileMask(String mobileMask) {
        this.mobileMask = mobileMask;
    }

    public String getRegStatus() {
        return regStatus;
    }

    public void setRegStatus(String regStatus) {
        this.regStatus = regStatus;
    }

    public String getStatusTag() {
        return statusTag;
    }

    public void setStatusTag(String statusTag) {
        this.statusTag = statusTag;
    }

    public String getStatusText() {
        return statusText;
    }

    public void setStatusText(String statusText) {
        this.statusText = statusText;
    }

    public String getFailReason() {
        return failReason;
    }

    public void setFailReason(String failReason) {
        this.failReason = failReason;
    }

    public LocalDateTime getSubmittedAt() {
        return submittedAt;
    }

    public void setSubmittedAt(LocalDateTime submittedAt) {
        this.submittedAt = submittedAt;
    }
}
