package com.qmth.sop.business.entity;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qmth.sop.common.base.BaseEntity;
import com.qmth.sop.common.enums.ProductTypeEnum;
import com.qmth.sop.common.enums.ServiceStatusEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;

/**
 * <p>
 * 服务单元表
 * </p>
 *
 * @author wangliang
 * @since 2023-08-01
 */
@ApiModel(value="TBService对象", description="服务单元表")
public class TBService extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "名称")
    private String name;

    @ApiModelProperty(value = "类型，OFFICE：教务处，CLOUD_MARK：研究生")
    private ProductTypeEnum type;

    @ApiModelProperty(value = "开始时间")
    private Long startTime;

    @ApiModelProperty(value = "结束时间")
    private Long endTime;

    @ApiModelProperty(value = "区域协调人数量")
    private Integer regionPeopleCount;

    @ApiModelProperty(value = "区域项目数量")
    private Integer regionProjectCount;

    @ApiModelProperty(value = "服务单元负责人id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long serviceLeadId;

    @ApiModelProperty(value = "是否启用，0：停用，1：启用")
    private Boolean enable;

    @ApiModelProperty(value = "状态，NEW：新建，PUBLISH：已发布，FINISH：已完结，CANCEL：已作废")
    private ServiceStatusEnum status;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public ProductTypeEnum getType() {
        return type;
    }

    public void setType(ProductTypeEnum type) {
        this.type = type;
    }

    public Long getStartTime() {
        return startTime;
    }

    public void setStartTime(Long startTime) {
        this.startTime = startTime;
    }

    public Long getEndTime() {
        return endTime;
    }

    public void setEndTime(Long endTime) {
        this.endTime = endTime;
    }

    public Integer getRegionPeopleCount() {
        return regionPeopleCount;
    }

    public void setRegionPeopleCount(Integer regionPeopleCount) {
        this.regionPeopleCount = regionPeopleCount;
    }

    public Integer getRegionProjectCount() {
        return regionProjectCount;
    }

    public void setRegionProjectCount(Integer regionProjectCount) {
        this.regionProjectCount = regionProjectCount;
    }

    public Long getServiceLeadId() {
        return serviceLeadId;
    }

    public void setServiceLeadId(Long serviceLeadId) {
        this.serviceLeadId = serviceLeadId;
    }

    public Boolean getEnable() {
        return enable;
    }

    public void setEnable(Boolean enable) {
        this.enable = enable;
    }

    public ServiceStatusEnum getStatus() {
        return status;
    }

    public void setStatus(ServiceStatusEnum status) {
        this.status = status;
    }
}
