fcsc_ipi_backend/app/models/submission.model.js

89 lines
2.0 KiB
JavaScript

module.exports = (sequelize, DataTypes) => {
const Submission = sequelize.define("submission", {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true,
},
establishment_id: {
type: DataTypes.INTEGER,
allowNull: false,
},
quarter: {
type: DataTypes.ENUM("Q1", "Q2", "Q3", "Q4"),
allowNull: false,
},
year: {
type: DataTypes.INTEGER,
allowNull: false,
},
edit_request: {
type: DataTypes.BOOLEAN,
defaultValue: false,
},
edit_access: {
type: DataTypes.BOOLEAN,
defaultValue: false,
},
edit_access_close_date: {
type: DataTypes.DATE,
allowNull: true,
},
approve_reject_status: {
type: DataTypes.INTEGER,
defaultValue: 0,
},
approve_or_reject_by: {
type: DataTypes.INTEGER,
},
reject_reason: {
type: DataTypes.STRING(255),
},
status: {
type: DataTypes.STRING(50),
defaultValue: 'Pending',
},
created_by: {
type: DataTypes.INTEGER,
allowNull: false,
},
updated_by: {
type: DataTypes.INTEGER,
allowNull: true,
},
created_at: {
type: DataTypes.DATE,
defaultValue: DataTypes.NOW,
},
updated_at: {
type: DataTypes.DATE,
allowNull: true,
},
}, {
tableName: "submission",
timestamps: false,
});
Submission.associate = (models) => {
Submission.hasMany(models.SubmissionProduct, {
foreignKey: "submission_id",
as: "products",
onDelete: "CASCADE",
});
Submission.belongsTo(models.Establishment, {
foreignKey: "establishment_id",
as: "establishment"
});
Submission.belongsTo(models.EstablishmentUser, {
foreignKey: "created_by",
as: "created_user",
});
};
return Submission;
};