feat(tags): add tags to test cases (#299)
This commit is contained in:
36
backend/models/caseTags.js
Normal file
36
backend/models/caseTags.js
Normal file
@@ -0,0 +1,36 @@
|
||||
function definecaseTags(sequelize, DataTypes) {
|
||||
const caseTags = sequelize.define('caseTags', {
|
||||
id: {
|
||||
type: DataTypes.INTEGER,
|
||||
autoIncrement: true,
|
||||
primaryKey: true,
|
||||
},
|
||||
caseId: {
|
||||
type: DataTypes.INTEGER,
|
||||
allowNull: false,
|
||||
references: {
|
||||
model: 'cases',
|
||||
key: 'id',
|
||||
},
|
||||
onDelete: 'CASCADE',
|
||||
},
|
||||
tagId: {
|
||||
type: DataTypes.INTEGER,
|
||||
allowNull: false,
|
||||
references: {
|
||||
model: 'tags',
|
||||
key: 'id',
|
||||
},
|
||||
onDelete: 'CASCADE',
|
||||
},
|
||||
});
|
||||
|
||||
caseTags.associate = (models) => {
|
||||
caseTags.belongsTo(models.Case, { foreignKey: 'caseId', onDelete: 'CASCADE' });
|
||||
caseTags.belongsTo(models.Tags, { foreignKey: 'tagId', onDelete: 'CASCADE' });
|
||||
};
|
||||
|
||||
return caseTags;
|
||||
}
|
||||
|
||||
export default definecaseTags;
|
||||
@@ -55,6 +55,11 @@ function defineCase(sequelize, DataTypes) {
|
||||
Case.belongsToMany(models.Step, {
|
||||
through: 'caseSteps',
|
||||
});
|
||||
Case.belongsToMany(models.Tags, {
|
||||
through: 'caseTags',
|
||||
foreignKey: 'caseId',
|
||||
otherKey: 'tagId',
|
||||
});
|
||||
};
|
||||
|
||||
return Case;
|
||||
|
||||
34
backend/models/tags.js
Normal file
34
backend/models/tags.js
Normal file
@@ -0,0 +1,34 @@
|
||||
function defineTag(sequelize, DataTypes) {
|
||||
const Tags = sequelize.define('Tags', {
|
||||
name: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: false,
|
||||
},
|
||||
projectId: {
|
||||
type: DataTypes.INTEGER,
|
||||
allowNull: false,
|
||||
references: {
|
||||
model: 'projects',
|
||||
key: 'id',
|
||||
},
|
||||
onDelete: 'CASCADE',
|
||||
},
|
||||
});
|
||||
|
||||
Tags.associate = (models) => {
|
||||
Tags.belongsTo(models.Project, {
|
||||
foreignKey: 'projectId',
|
||||
onDelete: 'CASCADE',
|
||||
});
|
||||
|
||||
Tags.belongsToMany(models.Case, {
|
||||
through: 'caseTags',
|
||||
foreignKey: 'tagId',
|
||||
otherKey: 'caseId',
|
||||
});
|
||||
};
|
||||
|
||||
return Tags;
|
||||
}
|
||||
|
||||
export default defineTag;
|
||||
Reference in New Issue
Block a user