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

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

import java.time.LocalDateTime;

/**
 * 第三方可用工人条目（含手机号/身份证明文，便于前端直接调用添加接口）。
 */
@Schema(description = "第三方可用工人条目")
public class ThirdPartyAvailableWorkerItem {

    @JsonProperty("registration_id")
    @Schema(description = "第三方侧登记/候选人 ID（Mock）")
    private Long registrationId;

    @JsonProperty("worker_id")
    @Schema(description = "工人 ID（第三方 Mock）")
    private Long workerId;

    @JsonProperty("real_name")
    @Schema(description = "姓名", example = "王强")
    private String realName;

    @JsonProperty("confirmed_work_type")
    @Schema(description = "工种", example = "搬运工")
    private String confirmedWorkType;

    @JsonProperty("third_party_source")
    @Schema(description = "是否第三方人力来源：1=是", example = "1")
    private Integer thirdPartySource;

    @JsonProperty("mobile")
    @Schema(description = "手机号明文", example = "13812341001")
    private String mobile;

    @JsonProperty("id_card_no")
    @Schema(description = "身份证号明文", example = "110101199001011234")
    private String idCardNo;

    @JsonProperty("mobile_mask")
    @Schema(description = "脱敏手机号（兼容展示）", example = "138****1001")
    private String mobileMask;

    @JsonProperty("reg_status")
    @Schema(description = "登记状态")
    private String regStatus;

    @JsonProperty("status_tag")
    @Schema(description = "前端状态样式标签")
    private String statusTag;

    @JsonProperty("status_text")
    @Schema(description = "状态中文")
    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 getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getIdCardNo() {
        return idCardNo;
    }

    public void setIdCardNo(String idCardNo) {
        this.idCardNo = idCardNo;
    }

    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;
    }
}
