diff --git a/dao/build.gradle b/dao/build.gradle index 737ac89..0e62ce6 100644 --- a/dao/build.gradle +++ b/dao/build.gradle @@ -78,6 +78,12 @@ jooq { includeExpression = 'mock_data_rule.mock_data_type' includeTypes = '.*' } + forcedType { + userType = 'com.databasir.dao.enums.ProjectSyncTaskStatus' + converter = 'com.databasir.dao.converter.ProjectSyncTaskStatusConverter' + includeExpression = 'project_sync_task.status' + includeTypes = '.*' + } } } generate { diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/Databasir.java b/dao/generated-src/jooq/main/java/com/databasir/dao/Databasir.java index 9ead5d5..019bac4 100644 --- a/dao/generated-src/jooq/main/java/com/databasir/dao/Databasir.java +++ b/dao/generated-src/jooq/main/java/com/databasir/dao/Databasir.java @@ -18,6 +18,7 @@ import com.databasir.dao.tables.OauthApp; import com.databasir.dao.tables.OperationLog; import com.databasir.dao.tables.Project; import com.databasir.dao.tables.ProjectSyncRule; +import com.databasir.dao.tables.ProjectSyncTask; import com.databasir.dao.tables.SysKey; import com.databasir.dao.tables.SysMail; import com.databasir.dao.tables.TableColumnDocument; @@ -120,6 +121,11 @@ public class Databasir extends SchemaImpl { */ public final ProjectSyncRule PROJECT_SYNC_RULE = ProjectSyncRule.PROJECT_SYNC_RULE; + /** + * The table databasir.project_sync_task. + */ + public final ProjectSyncTask PROJECT_SYNC_TASK = ProjectSyncTask.PROJECT_SYNC_TASK; + /** * The table databasir.sys_key. */ @@ -200,6 +206,7 @@ public class Databasir extends SchemaImpl { OperationLog.OPERATION_LOG, Project.PROJECT, ProjectSyncRule.PROJECT_SYNC_RULE, + ProjectSyncTask.PROJECT_SYNC_TASK, SysKey.SYS_KEY, SysMail.SYS_MAIL, TableColumnDocument.TABLE_COLUMN_DOCUMENT, diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/Indexes.java b/dao/generated-src/jooq/main/java/com/databasir/dao/Indexes.java index e23fdbe..a07d9f6 100644 --- a/dao/generated-src/jooq/main/java/com/databasir/dao/Indexes.java +++ b/dao/generated-src/jooq/main/java/com/databasir/dao/Indexes.java @@ -7,6 +7,7 @@ package com.databasir.dao; import com.databasir.dao.tables.DataSourceProperty; import com.databasir.dao.tables.DatabaseDocument; import com.databasir.dao.tables.DocumentDiscussion; +import com.databasir.dao.tables.ProjectSyncTask; import com.databasir.dao.tables.TableColumnDocument; import com.databasir.dao.tables.TableDocument; import com.databasir.dao.tables.TableForeignKeyDocument; @@ -37,8 +38,10 @@ public class Indexes { public static final Index TABLE_TRIGGER_DOCUMENT_IDX_DATABASE_DOCUMENT_ID = Internal.createIndex(DSL.name("idx_database_document_id"), TableTriggerDocument.TABLE_TRIGGER_DOCUMENT, new OrderField[] { TableTriggerDocument.TABLE_TRIGGER_DOCUMENT.DATABASE_DOCUMENT_ID }, false); public static final Index DATABASE_DOCUMENT_IDX_PROJECT_ID = Internal.createIndex(DSL.name("idx_project_id"), DatabaseDocument.DATABASE_DOCUMENT, new OrderField[] { DatabaseDocument.DATABASE_DOCUMENT.PROJECT_ID }, false); public static final Index DOCUMENT_DISCUSSION_IDX_PROJECT_ID = Internal.createIndex(DSL.name("idx_project_id"), DocumentDiscussion.DOCUMENT_DISCUSSION, new OrderField[] { DocumentDiscussion.DOCUMENT_DISCUSSION.PROJECT_ID }, false); + public static final Index PROJECT_SYNC_TASK_IDX_PROJECT_ID = Internal.createIndex(DSL.name("idx_project_id"), ProjectSyncTask.PROJECT_SYNC_TASK, new OrderField[] { ProjectSyncTask.PROJECT_SYNC_TASK.PROJECT_ID }, false); public static final Index TABLE_COLUMN_DOCUMENT_IDX_TABLE_DOCUMENT_ID = Internal.createIndex(DSL.name("idx_table_document_id"), TableColumnDocument.TABLE_COLUMN_DOCUMENT, new OrderField[] { TableColumnDocument.TABLE_COLUMN_DOCUMENT.TABLE_DOCUMENT_ID }, false); public static final Index TABLE_FOREIGN_KEY_DOCUMENT_IDX_TABLE_DOCUMENT_ID = Internal.createIndex(DSL.name("idx_table_document_id"), TableForeignKeyDocument.TABLE_FOREIGN_KEY_DOCUMENT, new OrderField[] { TableForeignKeyDocument.TABLE_FOREIGN_KEY_DOCUMENT.TABLE_DOCUMENT_ID }, false); public static final Index TABLE_INDEX_DOCUMENT_IDX_TABLE_DOCUMENT_ID = Internal.createIndex(DSL.name("idx_table_document_id"), TableIndexDocument.TABLE_INDEX_DOCUMENT, new OrderField[] { TableIndexDocument.TABLE_INDEX_DOCUMENT.TABLE_DOCUMENT_ID }, false); public static final Index TABLE_TRIGGER_DOCUMENT_IDX_TABLE_DOCUMENT_ID = Internal.createIndex(DSL.name("idx_table_document_id"), TableTriggerDocument.TABLE_TRIGGER_DOCUMENT, new OrderField[] { TableTriggerDocument.TABLE_TRIGGER_DOCUMENT.TABLE_DOCUMENT_ID }, false); + public static final Index PROJECT_SYNC_TASK_IDX_USER_ID = Internal.createIndex(DSL.name("idx_user_id"), ProjectSyncTask.PROJECT_SYNC_TASK, new OrderField[] { ProjectSyncTask.PROJECT_SYNC_TASK.USER_ID }, false); } diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/Keys.java b/dao/generated-src/jooq/main/java/com/databasir/dao/Keys.java index 21f9e62..a59d5ce 100644 --- a/dao/generated-src/jooq/main/java/com/databasir/dao/Keys.java +++ b/dao/generated-src/jooq/main/java/com/databasir/dao/Keys.java @@ -18,6 +18,7 @@ import com.databasir.dao.tables.OauthApp; import com.databasir.dao.tables.OperationLog; import com.databasir.dao.tables.Project; import com.databasir.dao.tables.ProjectSyncRule; +import com.databasir.dao.tables.ProjectSyncTask; import com.databasir.dao.tables.SysKey; import com.databasir.dao.tables.SysMail; import com.databasir.dao.tables.TableColumnDocument; @@ -42,6 +43,7 @@ import com.databasir.dao.tables.records.OauthAppRecord; import com.databasir.dao.tables.records.OperationLogRecord; import com.databasir.dao.tables.records.ProjectRecord; import com.databasir.dao.tables.records.ProjectSyncRuleRecord; +import com.databasir.dao.tables.records.ProjectSyncTaskRecord; import com.databasir.dao.tables.records.SysKeyRecord; import com.databasir.dao.tables.records.SysMailRecord; import com.databasir.dao.tables.records.TableColumnDocumentRecord; @@ -93,6 +95,7 @@ public class Keys { public static final UniqueKey KEY_PROJECT_UK_GROUP_ID_NAME_DELETED_TOKEN = Internal.createUniqueKey(Project.PROJECT, DSL.name("KEY_project_uk_group_id_name_deleted_token"), new TableField[] { Project.PROJECT.GROUP_ID, Project.PROJECT.NAME, Project.PROJECT.DELETED_TOKEN }, true); public static final UniqueKey KEY_PROJECT_SYNC_RULE_PRIMARY = Internal.createUniqueKey(ProjectSyncRule.PROJECT_SYNC_RULE, DSL.name("KEY_project_sync_rule_PRIMARY"), new TableField[] { ProjectSyncRule.PROJECT_SYNC_RULE.ID }, true); public static final UniqueKey KEY_PROJECT_SYNC_RULE_UK_PROJECT_ID = Internal.createUniqueKey(ProjectSyncRule.PROJECT_SYNC_RULE, DSL.name("KEY_project_sync_rule_uk_project_id"), new TableField[] { ProjectSyncRule.PROJECT_SYNC_RULE.PROJECT_ID }, true); + public static final UniqueKey KEY_PROJECT_SYNC_TASK_PRIMARY = Internal.createUniqueKey(ProjectSyncTask.PROJECT_SYNC_TASK, DSL.name("KEY_project_sync_task_PRIMARY"), new TableField[] { ProjectSyncTask.PROJECT_SYNC_TASK.ID }, true); public static final UniqueKey KEY_SYS_KEY_PRIMARY = Internal.createUniqueKey(SysKey.SYS_KEY, DSL.name("KEY_sys_key_PRIMARY"), new TableField[] { SysKey.SYS_KEY.ID }, true); public static final UniqueKey KEY_SYS_MAIL_PRIMARY = Internal.createUniqueKey(SysMail.SYS_MAIL, DSL.name("KEY_sys_mail_PRIMARY"), new TableField[] { SysMail.SYS_MAIL.ID }, true); public static final UniqueKey KEY_TABLE_COLUMN_DOCUMENT_PRIMARY = Internal.createUniqueKey(TableColumnDocument.TABLE_COLUMN_DOCUMENT, DSL.name("KEY_table_column_document_PRIMARY"), new TableField[] { TableColumnDocument.TABLE_COLUMN_DOCUMENT.ID }, true); diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/Tables.java b/dao/generated-src/jooq/main/java/com/databasir/dao/Tables.java index b7e080b..9631e01 100644 --- a/dao/generated-src/jooq/main/java/com/databasir/dao/Tables.java +++ b/dao/generated-src/jooq/main/java/com/databasir/dao/Tables.java @@ -18,6 +18,7 @@ import com.databasir.dao.tables.OauthApp; import com.databasir.dao.tables.OperationLog; import com.databasir.dao.tables.Project; import com.databasir.dao.tables.ProjectSyncRule; +import com.databasir.dao.tables.ProjectSyncTask; import com.databasir.dao.tables.SysKey; import com.databasir.dao.tables.SysMail; import com.databasir.dao.tables.TableColumnDocument; @@ -106,6 +107,11 @@ public class Tables { */ public static final ProjectSyncRule PROJECT_SYNC_RULE = ProjectSyncRule.PROJECT_SYNC_RULE; + /** + * The table databasir.project_sync_task. + */ + public static final ProjectSyncTask PROJECT_SYNC_TASK = ProjectSyncTask.PROJECT_SYNC_TASK; + /** * The table databasir.sys_key. */ diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/ProjectSyncTask.java b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/ProjectSyncTask.java new file mode 100644 index 0000000..8048ecb --- /dev/null +++ b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/ProjectSyncTask.java @@ -0,0 +1,186 @@ +/* + * This file is generated by jOOQ. + */ +package com.databasir.dao.tables; + + +import com.databasir.dao.Databasir; +import com.databasir.dao.Indexes; +import com.databasir.dao.Keys; +import com.databasir.dao.converter.ProjectSyncTaskStatusConverter; +import com.databasir.dao.enums.ProjectSyncTaskStatus; +import com.databasir.dao.tables.records.ProjectSyncTaskRecord; + +import java.time.LocalDateTime; +import java.util.Arrays; +import java.util.List; + +import org.jooq.Field; +import org.jooq.ForeignKey; +import org.jooq.Identity; +import org.jooq.Index; +import org.jooq.Name; +import org.jooq.Record; +import org.jooq.Row8; +import org.jooq.Schema; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class ProjectSyncTask extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of databasir.project_sync_task + */ + public static final ProjectSyncTask PROJECT_SYNC_TASK = new ProjectSyncTask(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return ProjectSyncTaskRecord.class; + } + + /** + * The column databasir.project_sync_task.id. + */ + public final TableField ID = createField(DSL.name("id"), SQLDataType.INTEGER.nullable(false).identity(true), this, ""); + + /** + * The column databasir.project_sync_task.project_id. + */ + public final TableField PROJECT_ID = createField(DSL.name("project_id"), SQLDataType.INTEGER.nullable(false), this, ""); + + /** + * The column databasir.project_sync_task.user_id. + */ + public final TableField USER_ID = createField(DSL.name("user_id"), SQLDataType.INTEGER.nullable(false), this, ""); + + /** + * The column databasir.project_sync_task.status. NEW RUNNING + * FINISHED FAILED CANCELED + */ + public final TableField STATUS = createField(DSL.name("status"), SQLDataType.VARCHAR(32).nullable(false).defaultValue(DSL.inline("NEW", SQLDataType.VARCHAR)), this, "NEW RUNNING FINISHED FAILED CANCELED", new ProjectSyncTaskStatusConverter()); + + /** + * The column databasir.project_sync_task.result. + */ + public final TableField RESULT = createField(DSL.name("result"), SQLDataType.VARCHAR(1024).nullable(false).defaultValue(DSL.inline("", SQLDataType.VARCHAR)), this, ""); + + /** + * The column databasir.project_sync_task.run_at. + */ + public final TableField RUN_AT = createField(DSL.name("run_at"), SQLDataType.LOCALDATETIME(0), this, ""); + + /** + * The column databasir.project_sync_task.update_at. + */ + public final TableField UPDATE_AT = createField(DSL.name("update_at"), SQLDataType.LOCALDATETIME(0).nullable(false).defaultValue(DSL.field("CURRENT_TIMESTAMP", SQLDataType.LOCALDATETIME)), this, ""); + + /** + * The column databasir.project_sync_task.create_at. + */ + public final TableField CREATE_AT = createField(DSL.name("create_at"), SQLDataType.LOCALDATETIME(0).nullable(false).defaultValue(DSL.field("CURRENT_TIMESTAMP", SQLDataType.LOCALDATETIME)), this, ""); + + private ProjectSyncTask(Name alias, Table aliased) { + this(alias, aliased, null); + } + + private ProjectSyncTask(Name alias, Table aliased, Field[] parameters) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table()); + } + + /** + * Create an aliased databasir.project_sync_task table + * reference + */ + public ProjectSyncTask(String alias) { + this(DSL.name(alias), PROJECT_SYNC_TASK); + } + + /** + * Create an aliased databasir.project_sync_task table + * reference + */ + public ProjectSyncTask(Name alias) { + this(alias, PROJECT_SYNC_TASK); + } + + /** + * Create a databasir.project_sync_task table reference + */ + public ProjectSyncTask() { + this(DSL.name("project_sync_task"), null); + } + + public ProjectSyncTask(Table child, ForeignKey key) { + super(child, key, PROJECT_SYNC_TASK); + } + + @Override + public Schema getSchema() { + return aliased() ? null : Databasir.DATABASIR; + } + + @Override + public List getIndexes() { + return Arrays.asList(Indexes.PROJECT_SYNC_TASK_IDX_PROJECT_ID, Indexes.PROJECT_SYNC_TASK_IDX_USER_ID); + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.KEY_PROJECT_SYNC_TASK_PRIMARY; + } + + @Override + public ProjectSyncTask as(String alias) { + return new ProjectSyncTask(DSL.name(alias), this); + } + + @Override + public ProjectSyncTask as(Name alias) { + return new ProjectSyncTask(alias, this); + } + + /** + * Rename this table + */ + @Override + public ProjectSyncTask rename(String name) { + return new ProjectSyncTask(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public ProjectSyncTask rename(Name name) { + return new ProjectSyncTask(name, null); + } + + // ------------------------------------------------------------------------- + // Row8 type methods + // ------------------------------------------------------------------------- + + @Override + public Row8 fieldsRow() { + return (Row8) super.fieldsRow(); + } +} diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/pojos/ProjectSyncTaskPojo.java b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/pojos/ProjectSyncTaskPojo.java new file mode 100644 index 0000000..f80900a --- /dev/null +++ b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/pojos/ProjectSyncTaskPojo.java @@ -0,0 +1,193 @@ +/* + * This file is generated by jOOQ. + */ +package com.databasir.dao.tables.pojos; + + +import com.databasir.dao.enums.ProjectSyncTaskStatus; + +import java.io.Serializable; +import java.time.LocalDateTime; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class ProjectSyncTaskPojo implements Serializable { + + private static final long serialVersionUID = 1L; + + private Integer id; + private Integer projectId; + private Integer userId; + private ProjectSyncTaskStatus status; + private String result; + private LocalDateTime runAt; + private LocalDateTime updateAt; + private LocalDateTime createAt; + + public ProjectSyncTaskPojo() {} + + public ProjectSyncTaskPojo(ProjectSyncTaskPojo value) { + this.id = value.id; + this.projectId = value.projectId; + this.userId = value.userId; + this.status = value.status; + this.result = value.result; + this.runAt = value.runAt; + this.updateAt = value.updateAt; + this.createAt = value.createAt; + } + + public ProjectSyncTaskPojo( + Integer id, + Integer projectId, + Integer userId, + ProjectSyncTaskStatus status, + String result, + LocalDateTime runAt, + LocalDateTime updateAt, + LocalDateTime createAt + ) { + this.id = id; + this.projectId = projectId; + this.userId = userId; + this.status = status; + this.result = result; + this.runAt = runAt; + this.updateAt = updateAt; + this.createAt = createAt; + } + + /** + * Getter for databasir.project_sync_task.id. + */ + public Integer getId() { + return this.id; + } + + /** + * Setter for databasir.project_sync_task.id. + */ + public void setId(Integer id) { + this.id = id; + } + + /** + * Getter for databasir.project_sync_task.project_id. + */ + public Integer getProjectId() { + return this.projectId; + } + + /** + * Setter for databasir.project_sync_task.project_id. + */ + public void setProjectId(Integer projectId) { + this.projectId = projectId; + } + + /** + * Getter for databasir.project_sync_task.user_id. + */ + public Integer getUserId() { + return this.userId; + } + + /** + * Setter for databasir.project_sync_task.user_id. + */ + public void setUserId(Integer userId) { + this.userId = userId; + } + + /** + * Getter for databasir.project_sync_task.status. NEW RUNNING + * FINISHED FAILED CANCELED + */ + public ProjectSyncTaskStatus getStatus() { + return this.status; + } + + /** + * Setter for databasir.project_sync_task.status. NEW RUNNING + * FINISHED FAILED CANCELED + */ + public void setStatus(ProjectSyncTaskStatus status) { + this.status = status; + } + + /** + * Getter for databasir.project_sync_task.result. + */ + public String getResult() { + return this.result; + } + + /** + * Setter for databasir.project_sync_task.result. + */ + public void setResult(String result) { + this.result = result; + } + + /** + * Getter for databasir.project_sync_task.run_at. + */ + public LocalDateTime getRunAt() { + return this.runAt; + } + + /** + * Setter for databasir.project_sync_task.run_at. + */ + public void setRunAt(LocalDateTime runAt) { + this.runAt = runAt; + } + + /** + * Getter for databasir.project_sync_task.update_at. + */ + public LocalDateTime getUpdateAt() { + return this.updateAt; + } + + /** + * Setter for databasir.project_sync_task.update_at. + */ + public void setUpdateAt(LocalDateTime updateAt) { + this.updateAt = updateAt; + } + + /** + * Getter for databasir.project_sync_task.create_at. + */ + public LocalDateTime getCreateAt() { + return this.createAt; + } + + /** + * Setter for databasir.project_sync_task.create_at. + */ + public void setCreateAt(LocalDateTime createAt) { + this.createAt = createAt; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("ProjectSyncTaskPojo ("); + + sb.append(id); + sb.append(", ").append(projectId); + sb.append(", ").append(userId); + sb.append(", ").append(status); + sb.append(", ").append(result); + sb.append(", ").append(runAt); + sb.append(", ").append(updateAt); + sb.append(", ").append(createAt); + + sb.append(")"); + return sb.toString(); + } +} diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/records/ProjectSyncTaskRecord.java b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/records/ProjectSyncTaskRecord.java new file mode 100644 index 0000000..e98ad4c --- /dev/null +++ b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/records/ProjectSyncTaskRecord.java @@ -0,0 +1,390 @@ +/* + * This file is generated by jOOQ. + */ +package com.databasir.dao.tables.records; + + +import com.databasir.dao.enums.ProjectSyncTaskStatus; +import com.databasir.dao.tables.ProjectSyncTask; +import com.databasir.dao.tables.pojos.ProjectSyncTaskPojo; + +import java.time.LocalDateTime; + +import org.jooq.Field; +import org.jooq.Record1; +import org.jooq.Record8; +import org.jooq.Row8; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class ProjectSyncTaskRecord extends UpdatableRecordImpl implements Record8 { + + private static final long serialVersionUID = 1L; + + /** + * Setter for databasir.project_sync_task.id. + */ + public void setId(Integer value) { + set(0, value); + } + + /** + * Getter for databasir.project_sync_task.id. + */ + public Integer getId() { + return (Integer) get(0); + } + + /** + * Setter for databasir.project_sync_task.project_id. + */ + public void setProjectId(Integer value) { + set(1, value); + } + + /** + * Getter for databasir.project_sync_task.project_id. + */ + public Integer getProjectId() { + return (Integer) get(1); + } + + /** + * Setter for databasir.project_sync_task.user_id. + */ + public void setUserId(Integer value) { + set(2, value); + } + + /** + * Getter for databasir.project_sync_task.user_id. + */ + public Integer getUserId() { + return (Integer) get(2); + } + + /** + * Setter for databasir.project_sync_task.status. NEW RUNNING + * FINISHED FAILED CANCELED + */ + public void setStatus(ProjectSyncTaskStatus value) { + set(3, value); + } + + /** + * Getter for databasir.project_sync_task.status. NEW RUNNING + * FINISHED FAILED CANCELED + */ + public ProjectSyncTaskStatus getStatus() { + return (ProjectSyncTaskStatus) get(3); + } + + /** + * Setter for databasir.project_sync_task.result. + */ + public void setResult(String value) { + set(4, value); + } + + /** + * Getter for databasir.project_sync_task.result. + */ + public String getResult() { + return (String) get(4); + } + + /** + * Setter for databasir.project_sync_task.run_at. + */ + public void setRunAt(LocalDateTime value) { + set(5, value); + } + + /** + * Getter for databasir.project_sync_task.run_at. + */ + public LocalDateTime getRunAt() { + return (LocalDateTime) get(5); + } + + /** + * Setter for databasir.project_sync_task.update_at. + */ + public void setUpdateAt(LocalDateTime value) { + set(6, value); + } + + /** + * Getter for databasir.project_sync_task.update_at. + */ + public LocalDateTime getUpdateAt() { + return (LocalDateTime) get(6); + } + + /** + * Setter for databasir.project_sync_task.create_at. + */ + public void setCreateAt(LocalDateTime value) { + set(7, value); + } + + /** + * Getter for databasir.project_sync_task.create_at. + */ + public LocalDateTime getCreateAt() { + return (LocalDateTime) get(7); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Record8 type implementation + // ------------------------------------------------------------------------- + + @Override + public Row8 fieldsRow() { + return (Row8) super.fieldsRow(); + } + + @Override + public Row8 valuesRow() { + return (Row8) super.valuesRow(); + } + + @Override + public Field field1() { + return ProjectSyncTask.PROJECT_SYNC_TASK.ID; + } + + @Override + public Field field2() { + return ProjectSyncTask.PROJECT_SYNC_TASK.PROJECT_ID; + } + + @Override + public Field field3() { + return ProjectSyncTask.PROJECT_SYNC_TASK.USER_ID; + } + + @Override + public Field field4() { + return ProjectSyncTask.PROJECT_SYNC_TASK.STATUS; + } + + @Override + public Field field5() { + return ProjectSyncTask.PROJECT_SYNC_TASK.RESULT; + } + + @Override + public Field field6() { + return ProjectSyncTask.PROJECT_SYNC_TASK.RUN_AT; + } + + @Override + public Field field7() { + return ProjectSyncTask.PROJECT_SYNC_TASK.UPDATE_AT; + } + + @Override + public Field field8() { + return ProjectSyncTask.PROJECT_SYNC_TASK.CREATE_AT; + } + + @Override + public Integer component1() { + return getId(); + } + + @Override + public Integer component2() { + return getProjectId(); + } + + @Override + public Integer component3() { + return getUserId(); + } + + @Override + public ProjectSyncTaskStatus component4() { + return getStatus(); + } + + @Override + public String component5() { + return getResult(); + } + + @Override + public LocalDateTime component6() { + return getRunAt(); + } + + @Override + public LocalDateTime component7() { + return getUpdateAt(); + } + + @Override + public LocalDateTime component8() { + return getCreateAt(); + } + + @Override + public Integer value1() { + return getId(); + } + + @Override + public Integer value2() { + return getProjectId(); + } + + @Override + public Integer value3() { + return getUserId(); + } + + @Override + public ProjectSyncTaskStatus value4() { + return getStatus(); + } + + @Override + public String value5() { + return getResult(); + } + + @Override + public LocalDateTime value6() { + return getRunAt(); + } + + @Override + public LocalDateTime value7() { + return getUpdateAt(); + } + + @Override + public LocalDateTime value8() { + return getCreateAt(); + } + + @Override + public ProjectSyncTaskRecord value1(Integer value) { + setId(value); + return this; + } + + @Override + public ProjectSyncTaskRecord value2(Integer value) { + setProjectId(value); + return this; + } + + @Override + public ProjectSyncTaskRecord value3(Integer value) { + setUserId(value); + return this; + } + + @Override + public ProjectSyncTaskRecord value4(ProjectSyncTaskStatus value) { + setStatus(value); + return this; + } + + @Override + public ProjectSyncTaskRecord value5(String value) { + setResult(value); + return this; + } + + @Override + public ProjectSyncTaskRecord value6(LocalDateTime value) { + setRunAt(value); + return this; + } + + @Override + public ProjectSyncTaskRecord value7(LocalDateTime value) { + setUpdateAt(value); + return this; + } + + @Override + public ProjectSyncTaskRecord value8(LocalDateTime value) { + setCreateAt(value); + return this; + } + + @Override + public ProjectSyncTaskRecord values(Integer value1, Integer value2, Integer value3, ProjectSyncTaskStatus value4, String value5, LocalDateTime value6, LocalDateTime value7, LocalDateTime value8) { + value1(value1); + value2(value2); + value3(value3); + value4(value4); + value5(value5); + value6(value6); + value7(value7); + value8(value8); + return this; + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached ProjectSyncTaskRecord + */ + public ProjectSyncTaskRecord() { + super(ProjectSyncTask.PROJECT_SYNC_TASK); + } + + /** + * Create a detached, initialised ProjectSyncTaskRecord + */ + public ProjectSyncTaskRecord(Integer id, Integer projectId, Integer userId, ProjectSyncTaskStatus status, String result, LocalDateTime runAt, LocalDateTime updateAt, LocalDateTime createAt) { + super(ProjectSyncTask.PROJECT_SYNC_TASK); + + setId(id); + setProjectId(projectId); + setUserId(userId); + setStatus(status); + setResult(result); + setRunAt(runAt); + setUpdateAt(updateAt); + setCreateAt(createAt); + } + + /** + * Create a detached, initialised ProjectSyncTaskRecord + */ + public ProjectSyncTaskRecord(ProjectSyncTaskPojo value) { + super(ProjectSyncTask.PROJECT_SYNC_TASK); + + if (value != null) { + setId(value.getId()); + setProjectId(value.getProjectId()); + setUserId(value.getUserId()); + setStatus(value.getStatus()); + setResult(value.getResult()); + setRunAt(value.getRunAt()); + setUpdateAt(value.getUpdateAt()); + setCreateAt(value.getCreateAt()); + } + } +} diff --git a/dao/src/main/java/com/databasir/dao/converter/ProjectSyncTaskStatusConverter.java b/dao/src/main/java/com/databasir/dao/converter/ProjectSyncTaskStatusConverter.java new file mode 100644 index 0000000..120f940 --- /dev/null +++ b/dao/src/main/java/com/databasir/dao/converter/ProjectSyncTaskStatusConverter.java @@ -0,0 +1,12 @@ +package com.databasir.dao.converter; + +import com.databasir.dao.enums.ProjectSyncTaskStatus; +import org.jooq.impl.EnumConverter; + +public class ProjectSyncTaskStatusConverter extends EnumConverter { + + public ProjectSyncTaskStatusConverter() { + super(String.class, ProjectSyncTaskStatus.class); + } + +} diff --git a/dao/src/main/java/com/databasir/dao/enums/ProjectSyncTaskStatus.java b/dao/src/main/java/com/databasir/dao/enums/ProjectSyncTaskStatus.java new file mode 100644 index 0000000..33e350e --- /dev/null +++ b/dao/src/main/java/com/databasir/dao/enums/ProjectSyncTaskStatus.java @@ -0,0 +1,9 @@ +package com.databasir.dao.enums; + +public enum ProjectSyncTaskStatus { + NEW, + RUNNING, + FINISHED, + FAILED, + CANCELLED +} diff --git a/dao/src/main/java/com/databasir/dao/impl/ProjectSyncTaskDao.java b/dao/src/main/java/com/databasir/dao/impl/ProjectSyncTaskDao.java new file mode 100644 index 0000000..ad361e7 --- /dev/null +++ b/dao/src/main/java/com/databasir/dao/impl/ProjectSyncTaskDao.java @@ -0,0 +1,59 @@ +package com.databasir.dao.impl; + +import com.databasir.dao.enums.ProjectSyncTaskStatus; +import com.databasir.dao.tables.pojos.ProjectSyncTaskPojo; +import com.databasir.dao.tables.records.ProjectSyncTaskRecord; +import lombok.Getter; +import org.jooq.DSLContext; +import org.jooq.UpdateSetMoreStep; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Repository; + +import java.time.LocalDateTime; +import java.util.Collection; +import java.util.List; + +import static com.databasir.dao.Tables.PROJECT_SYNC_TASK; + +@Repository +public class ProjectSyncTaskDao extends BaseDao { + + @Autowired + @Getter + private DSLContext dslContext; + + public ProjectSyncTaskDao() { + super(PROJECT_SYNC_TASK, ProjectSyncTaskPojo.class); + } + + public boolean existsByProjectId(Integer projectId, Collection statusIn) { + if (statusIn == null || statusIn.isEmpty()) { + throw new IllegalArgumentException("statusIn must not be empty"); + } + return dslContext.fetchExists(PROJECT_SYNC_TASK, + PROJECT_SYNC_TASK.PROJECT_ID.eq(projectId).and(PROJECT_SYNC_TASK.STATUS.in(statusIn))); + } + + public List listNewTasks(Integer size) { + return dslContext + .selectFrom(PROJECT_SYNC_TASK) + .where(PROJECT_SYNC_TASK.STATUS.eq(ProjectSyncTaskStatus.NEW)) + .orderBy(PROJECT_SYNC_TASK.ID.asc()) + .limit(size) + .fetchInto(ProjectSyncTaskPojo.class); + } + + public int updateStatusAndResultById(Integer taskId, ProjectSyncTaskStatus status, String result) { + UpdateSetMoreStep updateStep = dslContext + .update(PROJECT_SYNC_TASK) + .set(PROJECT_SYNC_TASK.STATUS, status) + .set(PROJECT_SYNC_TASK.RESULT, result); + if (status == ProjectSyncTaskStatus.RUNNING) { + updateStep = updateStep.set(PROJECT_SYNC_TASK.RUN_AT, LocalDateTime.now()); + } + return updateStep + .where(PROJECT_SYNC_TASK.ID.eq(taskId)) + .execute(); + } + +} \ No newline at end of file diff --git a/dao/src/main/resources/db/migration/V1.3__sync_task.sql b/dao/src/main/resources/db/migration/V1.3__sync_task.sql new file mode 100644 index 0000000..1ffe8a1 --- /dev/null +++ b/dao/src/main/resources/db/migration/V1.3__sync_task.sql @@ -0,0 +1,14 @@ +CREATE TABLE IF NOT EXISTS project_sync_task +( + `id` INT PRIMARY KEY AUTO_INCREMENT, + `project_id` INT NOT NULL, + `user_id` INT NOT NULL, + `status` VARCHAR(32) NOT NULL DEFAULT 'NEW' COMMENT 'NEW \ RUNNING \ FINISHED \ FAILED \ CANCELED', + `result` VARCHAR(1024) NOT NULL DEFAULT '', + `run_at` DATETIME DEFAULT NULL, + `update_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `create_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + INDEX idx_project_id (project_id), + INDEX idx_user_id (user_id) +) CHARSET utf8mb4 + COLLATE utf8mb4_unicode_ci; \ No newline at end of file