/*
 * This file is generated by jOOQ.
 */
package com.databasir.dao.tables.pojos;


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

import org.jooq.JSON;


/**
 * This class is generated by jOOQ.
 */
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class ProjectSyncRulePojo implements Serializable {

    private static final long serialVersionUID = 1L;

    private Integer       id;
    private Integer       projectId;
    private JSON          ignoreTableNameRegexArray;
    private JSON          ignoreColumnNameRegexArray;
    private Boolean       isAutoSync;
    private String        autoSyncCron;
    private LocalDateTime updateAt;
    private LocalDateTime createAt;

    public ProjectSyncRulePojo() {}

    public ProjectSyncRulePojo(ProjectSyncRulePojo value) {
        this.id = value.id;
        this.projectId = value.projectId;
        this.ignoreTableNameRegexArray = value.ignoreTableNameRegexArray;
        this.ignoreColumnNameRegexArray = value.ignoreColumnNameRegexArray;
        this.isAutoSync = value.isAutoSync;
        this.autoSyncCron = value.autoSyncCron;
        this.updateAt = value.updateAt;
        this.createAt = value.createAt;
    }

    public ProjectSyncRulePojo(
        Integer       id,
        Integer       projectId,
        JSON          ignoreTableNameRegexArray,
        JSON          ignoreColumnNameRegexArray,
        Boolean       isAutoSync,
        String        autoSyncCron,
        LocalDateTime updateAt,
        LocalDateTime createAt
    ) {
        this.id = id;
        this.projectId = projectId;
        this.ignoreTableNameRegexArray = ignoreTableNameRegexArray;
        this.ignoreColumnNameRegexArray = ignoreColumnNameRegexArray;
        this.isAutoSync = isAutoSync;
        this.autoSyncCron = autoSyncCron;
        this.updateAt = updateAt;
        this.createAt = createAt;
    }

    /**
     * Getter for <code>databasir.project_sync_rule.id</code>.
     */
    public Integer getId() {
        return this.id;
    }

    /**
     * Setter for <code>databasir.project_sync_rule.id</code>.
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * Getter for <code>databasir.project_sync_rule.project_id</code>.
     */
    public Integer getProjectId() {
        return this.projectId;
    }

    /**
     * Setter for <code>databasir.project_sync_rule.project_id</code>.
     */
    public void setProjectId(Integer projectId) {
        this.projectId = projectId;
    }

    /**
     * Getter for
     * <code>databasir.project_sync_rule.ignore_table_name_regex_array</code>.
     */
    public JSON getIgnoreTableNameRegexArray() {
        return this.ignoreTableNameRegexArray;
    }

    /**
     * Setter for
     * <code>databasir.project_sync_rule.ignore_table_name_regex_array</code>.
     */
    public void setIgnoreTableNameRegexArray(JSON ignoreTableNameRegexArray) {
        this.ignoreTableNameRegexArray = ignoreTableNameRegexArray;
    }

    /**
     * Getter for
     * <code>databasir.project_sync_rule.ignore_column_name_regex_array</code>.
     */
    public JSON getIgnoreColumnNameRegexArray() {
        return this.ignoreColumnNameRegexArray;
    }

    /**
     * Setter for
     * <code>databasir.project_sync_rule.ignore_column_name_regex_array</code>.
     */
    public void setIgnoreColumnNameRegexArray(JSON ignoreColumnNameRegexArray) {
        this.ignoreColumnNameRegexArray = ignoreColumnNameRegexArray;
    }

    /**
     * Getter for <code>databasir.project_sync_rule.is_auto_sync</code>.
     */
    public Boolean getIsAutoSync() {
        return this.isAutoSync;
    }

    /**
     * Setter for <code>databasir.project_sync_rule.is_auto_sync</code>.
     */
    public void setIsAutoSync(Boolean isAutoSync) {
        this.isAutoSync = isAutoSync;
    }

    /**
     * Getter for <code>databasir.project_sync_rule.auto_sync_cron</code>.
     */
    public String getAutoSyncCron() {
        return this.autoSyncCron;
    }

    /**
     * Setter for <code>databasir.project_sync_rule.auto_sync_cron</code>.
     */
    public void setAutoSyncCron(String autoSyncCron) {
        this.autoSyncCron = autoSyncCron;
    }

    /**
     * Getter for <code>databasir.project_sync_rule.update_at</code>.
     */
    public LocalDateTime getUpdateAt() {
        return this.updateAt;
    }

    /**
     * Setter for <code>databasir.project_sync_rule.update_at</code>.
     */
    public void setUpdateAt(LocalDateTime updateAt) {
        this.updateAt = updateAt;
    }

    /**
     * Getter for <code>databasir.project_sync_rule.create_at</code>.
     */
    public LocalDateTime getCreateAt() {
        return this.createAt;
    }

    /**
     * Setter for <code>databasir.project_sync_rule.create_at</code>.
     */
    public void setCreateAt(LocalDateTime createAt) {
        this.createAt = createAt;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder("ProjectSyncRulePojo (");

        sb.append(id);
        sb.append(", ").append(projectId);
        sb.append(", ").append(ignoreTableNameRegexArray);
        sb.append(", ").append(ignoreColumnNameRegexArray);
        sb.append(", ").append(isAutoSync);
        sb.append(", ").append(autoSyncCron);
        sb.append(", ").append(updateAt);
        sb.append(", ").append(createAt);

        sb.append(")");
        return sb.toString();
    }
}
