From 7074e5f18359e0f71767d8a7cb2027ea899ef80f Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Wed, 9 Oct 2024 03:22:36 +0530 Subject: [PATCH] feat: robot model --- server/src/models/Robot.ts | 67 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 server/src/models/Robot.ts diff --git a/server/src/models/Robot.ts b/server/src/models/Robot.ts new file mode 100644 index 00000000..c5887447 --- /dev/null +++ b/server/src/models/Robot.ts @@ -0,0 +1,67 @@ +import { Model, DataTypes, Optional } from 'sequelize'; +import sequelize from '../db/config'; + +interface RobotAttributes { + id: string; + name: string; + createdAt: Date; + updatedAt: Date; + pairs: number; + params: object; + workflow: object; // Store workflow details as JSONB +} + +interface RobotCreationAttributes extends Optional {} + +class Robot extends Model implements RobotAttributes { + public id!: string; + public name!: string; + public createdAt!: Date; + public updatedAt!: Date; + public pairs!: number; + public params!: object; + public workflow!: object; +} + +Robot.init( + { + id: { + type: DataTypes.UUID, + defaultValue: DataTypes.UUIDV4, + primaryKey: true, + }, + name: { + type: DataTypes.STRING(255), + allowNull: false, + }, + createdAt: { + type: DataTypes.DATE, + allowNull: false, + defaultValue: DataTypes.NOW, + }, + updatedAt: { + type: DataTypes.DATE, + allowNull: false, + defaultValue: DataTypes.NOW, + }, + pairs: { + type: DataTypes.INTEGER, + allowNull: false, + }, + params: { + type: DataTypes.JSONB, + allowNull: true, + }, + workflow: { + type: DataTypes.JSONB, + allowNull: true, + }, + }, + { + sequelize, + tableName: 'robots', + timestamps: true, + } +); + +export default Robot;