//app/models/user/businessCustomer.model.js module.exports = (sequelize, DataTypes) => { const BusinessCustomer = sequelize.define( "BusinessCustomer", { business_customer_id: { type: DataTypes.STRING, primaryKey: true, }, user_id: { type: DataTypes.STRING, allowNull: false, unique: true, }, businessName: { type: DataTypes.STRING, allowNull: false, }, businessRegistrationNumber: { type: DataTypes.STRING, allowNull: false, unique: true, }, businessType: { type: DataTypes.STRING, allowNull: false, }, contactName: { type: DataTypes.STRING, allowNull: false, }, phoneNumber: { type: DataTypes.STRING, allowNull: false, }, businessEmail: { type: DataTypes.STRING, allowNull: false, }, expectedMonthlyVolume: { type: DataTypes.STRING, allowNull: false, }, note: { type: DataTypes.STRING, allowNull: true, }, legalName: DataTypes.STRING, taxNumber: DataTypes.STRING, website: DataTypes.STRING, partnerId: { type: DataTypes.STRING, allowNull: false, unique: true }, status: { type: DataTypes.ENUM("ACTIVE", "SUSPENDED", "CLOSED"), allowNull: false, defaultValue: "ACTIVE" }, approvedAt: { type: DataTypes.DATE, allowNull: false }, approvedBy: { type: DataTypes.STRING, allowNull: false }, settlement_term_id: { type: DataTypes.STRING, allowNull: true }, business_tier_id: { type: DataTypes.STRING, allowNull: true }, }, { tableName: "business_customers", timestamps: true, }, ); BusinessCustomer.associate = (db) => { BusinessCustomer.belongsTo(db.User, { foreignKey: "user_id", as: "user", }); BusinessCustomer.hasMany(db.BusinessContact, { foreignKey: "business_profile_id", as: "contacts" }); BusinessCustomer.hasMany(db.Address, { foreignKey: "business_profile_id", as: "addresses" }); BusinessCustomer.hasOne(db.BusinessCreditAccount, { foreignKey: "business_profile_id", as: "creditAccount" }); BusinessCustomer.belongsTo(db.SettlementTerm, { foreignKey: "settlement_term_id", as: "settlementTerm" }); BusinessCustomer.belongsTo(db.BusinessTier, { foreignKey: "business_tier_id", as: "businessTier" }); }; return BusinessCustomer; };