Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Models
- "use strict";
- const { Model } = require("sequelize");
- module.exports = (sequelize, DataTypes) => {
- class DemandeAbonnement extends Model {
- /**
- * Helper method for defining associations.
- * This method is not a part of Sequelize lifecycle.
- * The `models/index` file will call this method automatically.
- */
- static associate(models) {
- // define association here
- //----------------------------------------------------------------
- models.Abonnement.belongsToMany(models.User, {
- through: "DemandeAbonnement",
- foreignKey: "id_abonnement",
- otherKey: "id_user",
- });
- models.Abonnement.hasMany(models.DemandeAbonnement, {
- foreignKey: "id_abonnement",
- });
- //----------------------------------------------------------------
- models.User.belongsToMany(models.Abonnement, {
- through: "DemandeAbonnement",
- foreignKey: "id_user",
- otherKey: "id_abonnement",
- });
- DemandeAbonnement.belongsTo(models.User, {
- foreignKey: "id_user",
- });
- DemandeAbonnement.belongsTo(models.Abonnement, {
- foreignKey: "id_abonnement",
- });
- models.User.hasMany(models.DemandeAbonnement, {
- foreignKey: "id_user",
- });
- }
- }
- DemandeAbonnement.init(
- {
- id_user: DataTypes.INTEGER,
- id_abonnement: DataTypes.INTEGER,
- description_service: DataTypes.STRING,
- etat: DataTypes.STRING,
- precision_demande: DataTypes.STRING,
- },
- {
- sequelize,
- modelName: "DemandeAbonnement",
- freezeTableName: true,
- }
- );
- return DemandeAbonnement;
- };
- // migrations
- "use strict";
- /** @type {import('sequelize-cli').Migration} */
- module.exports = {
- async up(queryInterface, Sequelize) {
- await queryInterface.createTable("DemandeAbonnement", {
- id: {
- allowNull: false,
- autoIncrement: true,
- primaryKey: true,
- type: Sequelize.INTEGER,
- },
- id_user: {
- type: Sequelize.INTEGER,
- references: {
- model: "User",
- key: "id",
- },
- },
- id_abonnement: {
- type: Sequelize.INTEGER,
- references: {
- model: "Abonnement",
- key: "id",
- },
- },
- description_service: {
- type: Sequelize.STRING,
- },
- etat: {
- type: Sequelize.STRING,
- },
- precision_demande: {
- type: Sequelize.STRING,
- },
- createdAt: {
- allowNull: false,
- type: Sequelize.DATE,
- },
- updatedAt: {
- allowNull: false,
- type: Sequelize.DATE,
- },
- });
- },
- async down(queryInterface, Sequelize) {
- await queryInterface.dropTable("DemandeAbonnement");
- },
- };
Advertisement
Add Comment
Please, Sign In to add comment