package com.cpop.oam.business.entity;

import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import com.cpop.core.base.entity.BaseEntity;
import com.cpop.core.base.entity.BaseInsertListener;
import com.cpop.core.base.entity.BaseUpdateListener;
import lombok.*;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 任务-工单表 实体类。
 *
 * @author DB
 * @since 2023-09-18
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@Table(value = "cp_oam_task_work_order", onInsert = BaseInsertListener.class, onUpdate = BaseUpdateListener.class, mapperGenerateEnable = false)
public class TaskWorkOrder extends BaseEntity implements Serializable {

    /**
     * 主键
     */
    @Id
    private String id;

    /**
     * 任务id
     */
    private String taskId;

    /**
     * 品牌id
     */
    private String brandId;

    /**
     * 校区店铺id
     */
    private String storeId;

    /**
     * 问题手机号
     */
    private String phoneNumber;

    /**
     * 办结时间
     */
    private LocalDateTime finishTime;

    /**
     * 办结员工id
     */
    private String finishStaffId;

    /**
     * 接收用时
     */
    private Integer receivingTime;

    /**
     * 暂停员工
     */
    private String pauseStaffId;

    /**
     * 暂停记录时间
     */
    private LocalDateTime pauseRecordTime;

    /**
     * 暂停到期时间
     */
    private LocalDateTime pauseExpireTime;

    /**
     * 强制办结原因
     */
    private String enforceFinishReason;

    /**
     * 强制办结员工id
     */
    private String enforceFinishStaffId;

    /**
     * 强制办结时间
     */
    private LocalDateTime enforceFinishTime;

    /**
     * 强制办结剩余时间
     */
    private Integer enforceFinishSurplusTime;

    /**
     * 是否删除(0否1是)
     */
    @Column(isLogicDelete = true)
    private Boolean isDelete;

}
