/**
 * Licensed under the Apache License, Version 2.0 (the "License");
 */
package com.sifang.modules.sys.common.entity;

import org.hibernate.annotations.Cache;
import org.hibernate.annotations.*;

import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;

/**
 * 系统电站项目的表单设置表 Entity
 * @version 2024-01-22
 */
@Entity
@Table(name = "crm_form_set")
@DynamicInsert
@DynamicUpdate
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class FormSet implements Serializable {

    private static final long serialVersionUID = 1L;

    private String id;
    private String type;
    private String stage;
    private String parentSet;
    private String groupType;
    private String columnType;
    private String columnKey;
    private String columnName;
    private String mustFillFlag;
    private Integer sort;
    private Date createTime;
    private String groupFlag;
    @Transient
    private String stageName;
    @Transient
    private String groupTypeName;


    @Id
    @GeneratedValue(generator = "idGenerator")
    @GenericGenerator(name = "idGenerator", strategy = "uuid")
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }


    public String getMustFillFlag() {
        return mustFillFlag;
    }

    public void setMustFillFlag(String mustFillFlag) {
        this.mustFillFlag = mustFillFlag;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getType() {
        return type;
    }

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

    public String getStage() {
        return stage;
    }

    public void setStage(String stage) {
        this.stage = stage;
    }

    @Transient
    public String getStageName() {
        return stageName;
    }

    @Transient
    public void setStageName(String stageName) {
        this.stageName = stageName;
    }

    public String getGroupType() {
        return groupType;
    }

    public void setGroupType(String groupType) {
        this.groupType = groupType;
    }

    @Transient
    public String getGroupTypeName() {
        return groupTypeName;
    }

    @Transient
    public void setGroupTypeName(String groupTypeName) {
        this.groupTypeName = groupTypeName;
    }

    public String getColumnType() {
        return columnType;
    }

    public void setColumnType(String columnType) {
        this.columnType = columnType;
    }

    public String getColumnKey() {
        return columnKey;
    }

    public void setColumnKey(String columnKey) {
        this.columnKey = columnKey;
    }

    public String getColumnName() {
        return columnName;
    }

    public void setColumnName(String columnName) {
        this.columnName = columnName;
    }

    public String getParentSet() {
        return parentSet;
    }

    public void setParentSet(String parentSet) {
        this.parentSet = parentSet;
    }

    public Integer getSort() {
        return sort;
    }

    public void setSort(Integer sort) {
        this.sort = sort;
    }

    public String getGroupFlag() {
        return groupFlag;
    }

    public void setGroupFlag(String groupFlag) {
        this.groupFlag = groupFlag;
    }

    @Override
    public String toString() {
        return "FormSet{" +
                "id='" + id + '\'' +
                ", type='" + type + '\'' +
                ", stage='" + stage + '\'' +
                ", parentSet='" + parentSet + '\'' +
                ", groupType='" + groupType + '\'' +
                ", columnType='" + columnType + '\'' +
                ", columnKey='" + columnKey + '\'' +
                ", columnName='" + columnName + '\'' +
                ", mustFillFlag='" + mustFillFlag + '\'' +
                ", sort=" + sort +
                ", createTime=" + createTime +
                ", groupFlag='" + groupFlag + '\'' +
                ", stageName='" + stageName + '\'' +
                ", groupTypeName='" + groupTypeName + '\'' +
                '}';
    }
}