feat: complete node task 2a

This commit is contained in:
Ayobami
2025-07-28 06:42:00 +01:00
parent fe95626d9f
commit bd70df60b9
17 changed files with 1968 additions and 170 deletions
+26
View File
@@ -0,0 +1,26 @@
module.exports = (sequelize, DataTypes) => {
const chat = sequelize.define(
"chat",
{
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
create_at: {
type: DataTypes.DATE,
defaultValue: DataTypes.NOW,
},
chat_messages: {
type: DataTypes.TEXT,
allowNull: false,
},
},
{
timestamps: false,
freezeTableName: true,
tableName: "chat",
}
);
return chat;
};
+30
View File
@@ -0,0 +1,30 @@
module.exports = (sequelize, DataTypes) => {
const flow = sequelize.define(
"flow",
{
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
name: {
type: DataTypes.STRING,
allowNull: false,
},
description: {
type: DataTypes.TEXT,
allowNull: true,
},
created_at: {
type: DataTypes.DATE,
defaultValue: DataTypes.NOW,
},
},
{
timestamps: false,
freezeTableName: true,
tableName: "flow",
}
);
return flow;
};
+39
View File
@@ -0,0 +1,39 @@
module.exports = (sequelize, DataTypes) => {
const flow_log = sequelize.define(
"flow_log",
{
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
flow_id: {
type: DataTypes.INTEGER,
allowNull: false,
},
task_id: {
type: DataTypes.INTEGER,
allowNull: false,
},
result: {
type: DataTypes.TEXT,
allowNull: true,
},
status: {
type: DataTypes.STRING,
allowNull: false,
defaultValue: "pending",
},
created_at: {
type: DataTypes.DATE,
defaultValue: DataTypes.NOW,
},
},
{
timestamps: false,
freezeTableName: true,
tableName: "flow_logs",
}
);
return flow_log;
};
+42
View File
@@ -0,0 +1,42 @@
module.exports = (sequelize, DataTypes) => {
const task = sequelize.define(
"task",
{
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
flow_id: {
type: DataTypes.INTEGER,
allowNull: false,
references: {
model: "flow",
key: "id",
},
},
action_type: {
type: DataTypes.STRING,
allowNull: false,
},
input_data: {
type: DataTypes.TEXT,
allowNull: false,
},
order_index: {
type: DataTypes.INTEGER,
allowNull: false,
},
created_at: {
type: DataTypes.DATE,
defaultValue: DataTypes.NOW,
},
},
{
timestamps: false,
freezeTableName: true,
tableName: "task",
}
);
return task;
};
+34
View File
@@ -0,0 +1,34 @@
module.exports = (sequelize, DataTypes) => {
const upload = sequelize.define(
"upload",
{
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
filename: {
type: DataTypes.STRING,
allowNull: false,
},
mimetype: {
type: DataTypes.STRING,
allowNull: false,
},
path: {
type: DataTypes.STRING,
allowNull: false,
},
created_at: {
type: DataTypes.DATE,
defaultValue: DataTypes.NOW,
},
},
{
timestamps: false,
freezeTableName: true,
tableName: "upload",
}
);
return upload;
};