Files
pp-tcms/backend/models/cases.js
2025-10-16 07:18:09 +09:00

69 lines
1.3 KiB
JavaScript

function defineCase(sequelize, DataTypes) {
const Case = sequelize.define('Case', {
title: {
type: DataTypes.STRING,
allowNull: false,
},
state: {
type: DataTypes.INTEGER,
allowNull: false,
},
priority: {
type: DataTypes.INTEGER,
allowNull: false,
},
type: {
type: DataTypes.INTEGER,
allowNull: false,
},
automationStatus: {
type: DataTypes.INTEGER,
allowNull: false,
},
description: {
type: DataTypes.STRING,
allowNull: true,
},
template: {
type: DataTypes.INTEGER,
allowNull: false,
},
preConditions: {
type: DataTypes.STRING,
allowNull: true,
},
expectedResults: {
type: DataTypes.STRING,
allowNull: true,
},
folderId: {
type: DataTypes.INTEGER,
allowNull: false,
references: {
model: 'folder',
key: 'id',
},
onDelete: 'CASCADE',
},
});
Case.associate = (models) => {
Case.belongsTo(models.Folder, {
foreignKey: 'folderId',
onDelete: 'CASCADE',
});
Case.belongsToMany(models.Step, {
through: 'caseSteps',
});
Case.belongsToMany(models.Tags, {
through: 'caseTags',
foreignKey: 'caseId',
otherKey: 'tagId',
});
};
return Case;
}
export default defineCase;