package com.hotwj.platform.securityManagement.serviceQualityComplaint.domain.bo;

import com.hotwj.platform.securityManagement.serviceQualityComplaint.domain.HotServiceQualityComplaint;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;

import java.util.Date;

/**
 * 服务质量投诉业务对象 hot_service_quality_complaint
 *
 * @author shihongwei
 * @date 2026-01-07
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = HotServiceQualityComplaint.class, reverseConvertGenerate = false)
public class HotServiceQualityComplaintBo extends BaseEntity {

    /**
     * 主键
     */
    @NotNull(message = "主键不能为空", groups = {EditGroup.class})
    private Long id;

    /**
     * 公司ID
     */
    @NotNull(message = "公司ID不能为空", groups = {AddGroup.class, EditGroup.class})
    private Long companyId;

    /**
     * 投诉对象(1=人员 2=企业 3=车辆)
     */
    @NotBlank(message = "投诉对象(1=人员 2=企业 3=车辆)不能为空", groups = {AddGroup.class, EditGroup.class})
    private String complaintTarget;

    /**
     * 受理人ID
     */
    @NotNull(message = "受理人ID不能为空", groups = {AddGroup.class, EditGroup.class})
    private Long acceptorId;

    /**
     * 受理人
     */
    private String acceptorName;

    /**
     * 处理人ID
     */
    @NotNull(message = "处理人ID不能为空", groups = {AddGroup.class, EditGroup.class})
    private Long handlerId;

    /**
     * 处理人
     */
    private String handlerName;

    /**
     * 案件发生时间
     */
    @NotNull(message = "案件发生时间不能为空", groups = {AddGroup.class, EditGroup.class})
    private Date caseTime;

    /**
     * 投诉人
     */
    @NotBlank(message = "投诉人不能为空", groups = {AddGroup.class, EditGroup.class})
    private String complainantName;

    /**
     * 投诉人电话
     */
    @NotBlank(message = "投诉人电话不能为空", groups = {AddGroup.class, EditGroup.class})
    private String complainantPhone;

    /**
     * 投诉方式
     */
    @NotBlank(message = "投诉方式不能为空", groups = {AddGroup.class, EditGroup.class})
    private String complaintChannel;

    /**
     * 投诉服务
     */
    private String complaintService;

    /**
     * 案件发生地点
     */
    private String casePlace;

    /**
     * 案件概况
     */
    private String caseSummary;

    /**
     * 处理情况
     */
    private String handleResult;

    /**
     * 投诉诉求
     */
    private String complaintRequest;

    /**
     * 相关文件图片URL（多个图片,隔开）
     */
    private String attachmentUrl;

    /**
     * 受理人签名图片URL
     */
    private String acceptorSignImage;

    /**
     * 处理人签名图片URL
     */
    private String handlerSignImage;

    /**
     * 0=正常, 1=已删除
     */
    private Long isDeleted;


}
