/*
 * This file is generated by jOOQ.
 */
package cn.vertxup.workflow.domain.tables.records;


import cn.vertxup.workflow.domain.tables.WTodo;
import cn.vertxup.workflow.domain.tables.interfaces.IWTodo;
import io.github.jklingsporn.vertx.jooq.shared.internal.VertxPojo;
import org.jooq.Record1;
import org.jooq.impl.UpdatableRecordImpl;

import java.time.LocalDateTime;
/**
 * This class is generated by jOOQ.
 */
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class WTodoRecord extends UpdatableRecordImpl<WTodoRecord> implements VertxPojo, IWTodo {

    private static final long serialVersionUID = 1L;

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.KEY</code>. 「key」- 待办主键
     */
    @Override
    public WTodoRecord setKey(String value) {
        set(0, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.KEY</code>. 「key」- 待办主键
     */
    @Override
    public String getKey() {
        return (String) get(0);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.SERIAL</code>. 「serial」- 待办编号，使用
     * X_NUMBER 生成
     */
    @Override
    public WTodoRecord setSerial(String value) {
        set(1, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.SERIAL</code>. 「serial」- 待办编号，使用
     * X_NUMBER 生成
     */
    @Override
    public String getSerial() {
        return (String) get(1);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.NAME</code>. 「name」- 待办名称（标题）
     */
    @Override
    public WTodoRecord setName(String value) {
        set(2, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.NAME</code>. 「name」- 待办名称（标题）
     */
    @Override
    public String getName() {
        return (String) get(2);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.CODE</code>. 「code」-
     * 待办系统码，使用流程时候关联流程的任务ID
     */
    @Override
    public WTodoRecord setCode(String value) {
        set(3, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.CODE</code>. 「code」-
     * 待办系统码，使用流程时候关联流程的任务ID
     */
    @Override
    public String getCode() {
        return (String) get(3);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.ICON</code>. 「icon」- 待办显示的图标
     */
    @Override
    public WTodoRecord setIcon(String value) {
        set(4, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.ICON</code>. 「icon」- 待办显示的图标
     */
    @Override
    public String getIcon() {
        return (String) get(4);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.STATUS</code>. 「status」- 待办状态
     */
    @Override
    public WTodoRecord setStatus(String value) {
        set(5, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.STATUS</code>. 「status」- 待办状态
     */
    @Override
    public String getStatus() {
        return (String) get(5);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.TODO_URL</code>. 「todoUrl」- 待办路径
     */
    @Override
    public WTodoRecord setTodoUrl(String value) {
        set(6, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.TODO_URL</code>. 「todoUrl」- 待办路径
     */
    @Override
    public String getTodoUrl() {
        return (String) get(6);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.TYPE</code>. 「type」- 待办类型
     */
    @Override
    public WTodoRecord setType(String value) {
        set(7, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.TYPE</code>. 「type」- 待办类型
     */
    @Override
    public String getType() {
        return (String) get(7);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.EXPIRED_AT</code>. 「expiredAt」- 超时时间
     */
    @Override
    public WTodoRecord setExpiredAt(LocalDateTime value) {
        set(8, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.EXPIRED_AT</code>. 「expiredAt」- 超时时间
     */
    @Override
    public LocalDateTime getExpiredAt() {
        return (LocalDateTime) get(8);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.MODEL_ID</code>. 「modelId」-
     * 关联的模型identifier，用于描述
     */
    @Override
    public WTodoRecord setModelId(String value) {
        set(9, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.MODEL_ID</code>. 「modelId」-
     * 关联的模型identifier，用于描述
     */
    @Override
    public String getModelId() {
        return (String) get(9);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.MODEL_KEY</code>. 「modelKey」-
     * 关联的模型记录ID，用于描述哪一个Model中的记录
     */
    @Override
    public WTodoRecord setModelKey(String value) {
        set(10, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.MODEL_KEY</code>. 「modelKey」-
     * 关联的模型记录ID，用于描述哪一个Model中的记录
     */
    @Override
    public String getModelKey() {
        return (String) get(10);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.MODEL_CATEGORY</code>.
     * 「modelCategory」- 关联的category记录，只包含叶节点
     */
    @Override
    public WTodoRecord setModelCategory(String value) {
        set(11, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.MODEL_CATEGORY</code>.
     * 「modelCategory」- 关联的category记录，只包含叶节点
     */
    @Override
    public String getModelCategory() {
        return (String) get(11);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.PARENT_ID</code>. 「parentId」-
     * 待办支持父子集结构，父待办执行时候子待办同样执行
     */
    @Override
    public WTodoRecord setParentId(String value) {
        set(12, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.PARENT_ID</code>. 「parentId」-
     * 待办支持父子集结构，父待办执行时候子待办同样执行
     */
    @Override
    public String getParentId() {
        return (String) get(12);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.SERIAL_FORK</code>. 「serialFork」-
     * 生成序号的分支序号
     */
    @Override
    public WTodoRecord setSerialFork(String value) {
        set(13, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.SERIAL_FORK</code>. 「serialFork」-
     * 生成序号的分支序号
     */
    @Override
    public String getSerialFork() {
        return (String) get(13);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.TRACE_ID</code>. 「traceId」-
     * 同一个流程的待办执行分组
     */
    @Override
    public WTodoRecord setTraceId(String value) {
        set(14, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.TRACE_ID</code>. 「traceId」-
     * 同一个流程的待办执行分组
     */
    @Override
    public String getTraceId() {
        return (String) get(14);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.TRACE_ORDER</code>. 「traceOrder」-
     * 待办的处理顺序
     */
    @Override
    public WTodoRecord setTraceOrder(Integer value) {
        set(15, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.TRACE_ORDER</code>. 「traceOrder」-
     * 待办的处理顺序
     */
    @Override
    public Integer getTraceOrder() {
        return (Integer) get(15);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.TASK_ID</code>. 「taskId」-
     * 和待办绑定的taskId（任务）
     */
    @Override
    public WTodoRecord setTaskId(String value) {
        set(16, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.TASK_ID</code>. 「taskId」-
     * 和待办绑定的taskId（任务）
     */
    @Override
    public String getTaskId() {
        return (String) get(16);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.TASK_KEY</code>. 「taskKey」-
     * 和待办绑定的taskKey
     */
    @Override
    public WTodoRecord setTaskKey(String value) {
        set(17, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.TASK_KEY</code>. 「taskKey」-
     * 和待办绑定的taskKey
     */
    @Override
    public String getTaskKey() {
        return (String) get(17);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.COMMENT</code>. 「comment」- 待办描述
     */
    @Override
    public WTodoRecord setComment(String value) {
        set(18, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.COMMENT</code>. 「comment」- 待办描述
     */
    @Override
    public String getComment() {
        return (String) get(18);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.COMMENT_APPROVAL</code>.
     * 「commentApproval」- 审批描述
     */
    @Override
    public WTodoRecord setCommentApproval(String value) {
        set(19, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.COMMENT_APPROVAL</code>.
     * 「commentApproval」- 审批描述
     */
    @Override
    public String getCommentApproval() {
        return (String) get(19);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.COMMENT_REJECT</code>.
     * 「commentReject」- 拒绝理由
     */
    @Override
    public WTodoRecord setCommentReject(String value) {
        set(20, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.COMMENT_REJECT</code>.
     * 「commentReject」- 拒绝理由
     */
    @Override
    public String getCommentReject() {
        return (String) get(20);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.TO_LOCATION</code>. 「toLocation」-
     * 指定地址区域
     */
    @Override
    public WTodoRecord setToLocation(String value) {
        set(21, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.TO_LOCATION</code>. 「toLocation」-
     * 指定地址区域
     */
    @Override
    public String getToLocation() {
        return (String) get(21);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.TO_GROUP</code>. 「toGroup」- 指定用户组
     */
    @Override
    public WTodoRecord setToGroup(String value) {
        set(22, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.TO_GROUP</code>. 「toGroup」- 指定用户组
     */
    @Override
    public String getToGroup() {
        return (String) get(22);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.TO_TEAM</code>. 「toTeam」- 指定业务组
     */
    @Override
    public WTodoRecord setToTeam(String value) {
        set(23, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.TO_TEAM</code>. 「toTeam」- 指定业务组
     */
    @Override
    public String getToTeam() {
        return (String) get(23);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.TO_ROLE</code>. 「toRole」- 待办角色（集体）
     */
    @Override
    public WTodoRecord setToRole(String value) {
        set(24, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.TO_ROLE</code>. 「toRole」- 待办角色（集体）
     */
    @Override
    public String getToRole() {
        return (String) get(24);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.TO_USER</code>. 「toUser」- 待办指定人
     */
    @Override
    public WTodoRecord setToUser(String value) {
        set(25, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.TO_USER</code>. 「toUser」- 待办指定人
     */
    @Override
    public String getToUser() {
        return (String) get(25);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.TO_DEPT</code>. 「toDept」- 指定部门
     */
    @Override
    public WTodoRecord setToDept(String value) {
        set(26, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.TO_DEPT</code>. 「toDept」- 指定部门
     */
    @Override
    public String getToDept() {
        return (String) get(26);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.ESCALATE</code>. 「escalate」- 是否升级
     */
    @Override
    public WTodoRecord setEscalate(Boolean value) {
        set(27, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.ESCALATE</code>. 「escalate」- 是否升级
     */
    @Override
    public Boolean getEscalate() {
        return (Boolean) get(27);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.ESCALATE_DATA</code>. 「escalateData」-
     * 升级单据数据
     */
    @Override
    public WTodoRecord setEscalateData(String value) {
        set(28, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.ESCALATE_DATA</code>. 「escalateData」-
     * 升级单据数据
     */
    @Override
    public String getEscalateData() {
        return (String) get(28);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.ASSIGNED_BY</code>. 「assignedBy」-
     * 待办指派人
     */
    @Override
    public WTodoRecord setAssignedBy(String value) {
        set(29, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.ASSIGNED_BY</code>. 「assignedBy」-
     * 待办指派人
     */
    @Override
    public String getAssignedBy() {
        return (String) get(29);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.ASSIGNED_AT</code>. 「assignedAt」- 指派时间
     */
    @Override
    public WTodoRecord setAssignedAt(LocalDateTime value) {
        set(30, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.ASSIGNED_AT</code>. 「assignedAt」- 指派时间
     */
    @Override
    public LocalDateTime getAssignedAt() {
        return (LocalDateTime) get(30);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.ACCEPTED_BY</code>. 「acceptedBy」-
     * 待办接收人
     */
    @Override
    public WTodoRecord setAcceptedBy(String value) {
        set(31, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.ACCEPTED_BY</code>. 「acceptedBy」-
     * 待办接收人
     */
    @Override
    public String getAcceptedBy() {
        return (String) get(31);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.ACCEPTED_GROUP</code>.
     * 「acceptedGroup」- 当前处理组
     */
    @Override
    public WTodoRecord setAcceptedGroup(String value) {
        set(32, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.ACCEPTED_GROUP</code>.
     * 「acceptedGroup」- 当前处理组
     */
    @Override
    public String getAcceptedGroup() {
        return (String) get(32);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.ACCEPTED_AT</code>. 「acceptedAt」- 接收时间
     */
    @Override
    public WTodoRecord setAcceptedAt(LocalDateTime value) {
        set(33, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.ACCEPTED_AT</code>. 「acceptedAt」- 接收时间
     */
    @Override
    public LocalDateTime getAcceptedAt() {
        return (LocalDateTime) get(33);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.FINISHED_BY</code>. 「finishedBy」-
     * 待办完成人
     */
    @Override
    public WTodoRecord setFinishedBy(String value) {
        set(34, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.FINISHED_BY</code>. 「finishedBy」-
     * 待办完成人
     */
    @Override
    public String getFinishedBy() {
        return (String) get(34);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.FINISHED_AT</code>. 「finishedAt」- 完成时间
     */
    @Override
    public WTodoRecord setFinishedAt(LocalDateTime value) {
        set(35, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.FINISHED_AT</code>. 「finishedAt」- 完成时间
     */
    @Override
    public LocalDateTime getFinishedAt() {
        return (LocalDateTime) get(35);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.ACTIVE</code>. 「active」- 是否启用
     */
    @Override
    public WTodoRecord setActive(Boolean value) {
        set(36, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.ACTIVE</code>. 「active」- 是否启用
     */
    @Override
    public Boolean getActive() {
        return (Boolean) get(36);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.SIGMA</code>. 「sigma」- 统一标识
     */
    @Override
    public WTodoRecord setSigma(String value) {
        set(37, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.SIGMA</code>. 「sigma」- 统一标识
     */
    @Override
    public String getSigma() {
        return (String) get(37);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.METADATA</code>. 「metadata」- 附加配置
     */
    @Override
    public WTodoRecord setMetadata(String value) {
        set(38, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.METADATA</code>. 「metadata」- 附加配置
     */
    @Override
    public String getMetadata() {
        return (String) get(38);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.LANGUAGE</code>. 「language」- 使用的语言
     */
    @Override
    public WTodoRecord setLanguage(String value) {
        set(39, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.LANGUAGE</code>. 「language」- 使用的语言
     */
    @Override
    public String getLanguage() {
        return (String) get(39);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.CREATED_AT</code>. 「createdAt」- 创建时间
     */
    @Override
    public WTodoRecord setCreatedAt(LocalDateTime value) {
        set(40, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.CREATED_AT</code>. 「createdAt」- 创建时间
     */
    @Override
    public LocalDateTime getCreatedAt() {
        return (LocalDateTime) get(40);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.CREATED_BY</code>. 「createdBy」- 创建人
     */
    @Override
    public WTodoRecord setCreatedBy(String value) {
        set(41, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.CREATED_BY</code>. 「createdBy」- 创建人
     */
    @Override
    public String getCreatedBy() {
        return (String) get(41);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.UPDATED_AT</code>. 「updatedAt」- 更新时间
     */
    @Override
    public WTodoRecord setUpdatedAt(LocalDateTime value) {
        set(42, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.UPDATED_AT</code>. 「updatedAt」- 更新时间
     */
    @Override
    public LocalDateTime getUpdatedAt() {
        return (LocalDateTime) get(42);
    }

    /**
     * Setter for <code>DB_ETERNAL.W_TODO.UPDATED_BY</code>. 「updatedBy」- 更新人
     */
    @Override
    public WTodoRecord setUpdatedBy(String value) {
        set(43, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.W_TODO.UPDATED_BY</code>. 「updatedBy」- 更新人
     */
    @Override
    public String getUpdatedBy() {
        return (String) get(43);
    }

    // -------------------------------------------------------------------------
    // Primary key information
    // -------------------------------------------------------------------------

    @Override
    public Record1<String> key() {
        return (Record1) super.key();
    }

    // -------------------------------------------------------------------------
    // FROM and INTO
    // -------------------------------------------------------------------------

    @Override
    public void from(IWTodo from) {
        setKey(from.getKey());
        setSerial(from.getSerial());
        setName(from.getName());
        setCode(from.getCode());
        setIcon(from.getIcon());
        setStatus(from.getStatus());
        setTodoUrl(from.getTodoUrl());
        setType(from.getType());
        setExpiredAt(from.getExpiredAt());
        setModelId(from.getModelId());
        setModelKey(from.getModelKey());
        setModelCategory(from.getModelCategory());
        setParentId(from.getParentId());
        setSerialFork(from.getSerialFork());
        setTraceId(from.getTraceId());
        setTraceOrder(from.getTraceOrder());
        setTaskId(from.getTaskId());
        setTaskKey(from.getTaskKey());
        setComment(from.getComment());
        setCommentApproval(from.getCommentApproval());
        setCommentReject(from.getCommentReject());
        setToLocation(from.getToLocation());
        setToGroup(from.getToGroup());
        setToTeam(from.getToTeam());
        setToRole(from.getToRole());
        setToUser(from.getToUser());
        setToDept(from.getToDept());
        setEscalate(from.getEscalate());
        setEscalateData(from.getEscalateData());
        setAssignedBy(from.getAssignedBy());
        setAssignedAt(from.getAssignedAt());
        setAcceptedBy(from.getAcceptedBy());
        setAcceptedGroup(from.getAcceptedGroup());
        setAcceptedAt(from.getAcceptedAt());
        setFinishedBy(from.getFinishedBy());
        setFinishedAt(from.getFinishedAt());
        setActive(from.getActive());
        setSigma(from.getSigma());
        setMetadata(from.getMetadata());
        setLanguage(from.getLanguage());
        setCreatedAt(from.getCreatedAt());
        setCreatedBy(from.getCreatedBy());
        setUpdatedAt(from.getUpdatedAt());
        setUpdatedBy(from.getUpdatedBy());
    }

    @Override
    public <E extends IWTodo> E into(E into) {
        into.from(this);
        return into;
    }

    // -------------------------------------------------------------------------
    // Constructors
    // -------------------------------------------------------------------------

    /**
     * Create a detached WTodoRecord
     */
    public WTodoRecord() {
        super(WTodo.W_TODO);
    }

    /**
     * Create a detached, initialised WTodoRecord
     */
    public WTodoRecord(String key, String serial, String name, String code, String icon, String status, String todoUrl, String type, LocalDateTime expiredAt, String modelId, String modelKey, String modelCategory, String parentId, String serialFork, String traceId, Integer traceOrder, String taskId, String taskKey, String comment, String commentApproval, String commentReject, String toLocation, String toGroup, String toTeam, String toRole, String toUser, String toDept, Boolean escalate, String escalateData, String assignedBy, LocalDateTime assignedAt, String acceptedBy, String acceptedGroup, LocalDateTime acceptedAt, String finishedBy, LocalDateTime finishedAt, Boolean active, String sigma, String metadata, String language, LocalDateTime createdAt, String createdBy, LocalDateTime updatedAt, String updatedBy) {
        super(WTodo.W_TODO);

        setKey(key);
        setSerial(serial);
        setName(name);
        setCode(code);
        setIcon(icon);
        setStatus(status);
        setTodoUrl(todoUrl);
        setType(type);
        setExpiredAt(expiredAt);
        setModelId(modelId);
        setModelKey(modelKey);
        setModelCategory(modelCategory);
        setParentId(parentId);
        setSerialFork(serialFork);
        setTraceId(traceId);
        setTraceOrder(traceOrder);
        setTaskId(taskId);
        setTaskKey(taskKey);
        setComment(comment);
        setCommentApproval(commentApproval);
        setCommentReject(commentReject);
        setToLocation(toLocation);
        setToGroup(toGroup);
        setToTeam(toTeam);
        setToRole(toRole);
        setToUser(toUser);
        setToDept(toDept);
        setEscalate(escalate);
        setEscalateData(escalateData);
        setAssignedBy(assignedBy);
        setAssignedAt(assignedAt);
        setAcceptedBy(acceptedBy);
        setAcceptedGroup(acceptedGroup);
        setAcceptedAt(acceptedAt);
        setFinishedBy(finishedBy);
        setFinishedAt(finishedAt);
        setActive(active);
        setSigma(sigma);
        setMetadata(metadata);
        setLanguage(language);
        setCreatedAt(createdAt);
        setCreatedBy(createdBy);
        setUpdatedAt(updatedAt);
        setUpdatedBy(updatedBy);
    }

    /**
     * Create a detached, initialised WTodoRecord
     */
    public WTodoRecord(cn.vertxup.workflow.domain.tables.pojos.WTodo value) {
        super(WTodo.W_TODO);

        if (value != null) {
            setKey(value.getKey());
            setSerial(value.getSerial());
            setName(value.getName());
            setCode(value.getCode());
            setIcon(value.getIcon());
            setStatus(value.getStatus());
            setTodoUrl(value.getTodoUrl());
            setType(value.getType());
            setExpiredAt(value.getExpiredAt());
            setModelId(value.getModelId());
            setModelKey(value.getModelKey());
            setModelCategory(value.getModelCategory());
            setParentId(value.getParentId());
            setSerialFork(value.getSerialFork());
            setTraceId(value.getTraceId());
            setTraceOrder(value.getTraceOrder());
            setTaskId(value.getTaskId());
            setTaskKey(value.getTaskKey());
            setComment(value.getComment());
            setCommentApproval(value.getCommentApproval());
            setCommentReject(value.getCommentReject());
            setToLocation(value.getToLocation());
            setToGroup(value.getToGroup());
            setToTeam(value.getToTeam());
            setToRole(value.getToRole());
            setToUser(value.getToUser());
            setToDept(value.getToDept());
            setEscalate(value.getEscalate());
            setEscalateData(value.getEscalateData());
            setAssignedBy(value.getAssignedBy());
            setAssignedAt(value.getAssignedAt());
            setAcceptedBy(value.getAcceptedBy());
            setAcceptedGroup(value.getAcceptedGroup());
            setAcceptedAt(value.getAcceptedAt());
            setFinishedBy(value.getFinishedBy());
            setFinishedAt(value.getFinishedAt());
            setActive(value.getActive());
            setSigma(value.getSigma());
            setMetadata(value.getMetadata());
            setLanguage(value.getLanguage());
            setCreatedAt(value.getCreatedAt());
            setCreatedBy(value.getCreatedBy());
            setUpdatedAt(value.getUpdatedAt());
            setUpdatedBy(value.getUpdatedBy());
        }
    }

        public WTodoRecord(io.vertx.core.json.JsonObject json) {
                this();
                fromJson(json);
        }
}
