1
- const dbConfig = require ( "../config/db.config.js" ) ;
1
+ const dbConfig = require ( "../config/db.config.js" ) ; // Import database configuration
2
2
3
3
const Sequelize = require ( "sequelize" ) ;
4
4
5
+ // Initialize Sequelize instance with database credentials and pool settings
5
6
const sequelize = new Sequelize ( dbConfig . DB , dbConfig . USER , dbConfig . PASSWORD , {
6
7
host : dbConfig . HOST ,
7
8
dialect : dbConfig . dialect ,
@@ -20,6 +21,7 @@ const db = {};
20
21
db . Sequelize = Sequelize ;
21
22
db . sequelize = sequelize ;
22
23
24
+ // Import and initialize all models
23
25
db . useraccount = require ( "./useraccount.model.js" ) ( sequelize , Sequelize ) ;
24
26
db . user = require ( "./user.model.js" ) ( sequelize , Sequelize ) ;
25
27
db . serviceprovider = require ( "./serviceprovider.model.js" ) (
@@ -30,40 +32,49 @@ db.profile = require("./profile.model.js")(sequelize, Sequelize);
30
32
db . review = require ( "./review.model.js" ) ( sequelize , Sequelize ) ;
31
33
db . transaction = require ( "./transaction.model.js" ) ( sequelize , Sequelize ) ;
32
34
35
+ // Define associations between models
36
+
37
+ // One-to-One relationship: UserAccount -> User
33
38
db . useraccount . hasOne ( db . user , { foreignKey : "userAccountId" } ) ;
34
39
db . user . belongsTo ( db . useraccount , {
35
40
foreignKey : "userAccountId" ,
36
41
onDelete : "CASCADE" ,
37
42
} ) ;
38
43
39
- db . user . hasMany ( db . profile , { foreginKey : "userId" } ) ;
40
- db . profile . belongsTo ( db . user , { foreginKey : "userId" , onDelete : "CASCADE" } ) ;
44
+ // One-to-Many relationship: User -> Profile
45
+ db . user . hasMany ( db . profile , { foreignKey : "userId" } ) ;
46
+ db . profile . belongsTo ( db . user , { foreignKey : "userId" , onDelete : "CASCADE" } ) ;
41
47
42
- db . user . hasMany ( db . review , { foreginKey : "userId" } ) ;
43
- db . review . belongsTo ( db . user , { foreginKey : "userId" , onDelete : "CASCADE" } ) ;
48
+ // One-to-Many relationship: User -> Review
49
+ db . user . hasMany ( db . review , { foreignKey : "userId" } ) ;
50
+ db . review . belongsTo ( db . user , { foreignKey : "userId" , onDelete : "CASCADE" } ) ;
44
51
45
- db . user . hasMany ( db . transaction , { foreginKey : "userId" } ) ;
52
+ // One-to-Many relationship: User -> Transaction
53
+ db . user . hasMany ( db . transaction , { foreignKey : "userId" } ) ;
46
54
db . transaction . belongsTo ( db . user , {
47
- foreginKey : "userId" ,
55
+ foreignKey : "userId" ,
48
56
onDelete : "CASCADE" ,
49
57
} ) ;
50
58
51
- db . serviceprovider . hasMany ( db . profile , { foreginKey : "serviceProviderId" } ) ;
59
+ // One-to-Many relationship: ServiceProvider -> Profile
60
+ db . serviceprovider . hasMany ( db . profile , { foreignKey : "serviceProviderId" } ) ;
52
61
db . profile . belongsTo ( db . serviceprovider , {
53
62
foreignKey : "serviceProviderId" ,
54
63
onDelete : "CASCADE" ,
55
64
} ) ;
56
65
57
- db . serviceprovider . hasMany ( db . review , { foreginKey : "serviceProviderId" } ) ;
66
+ // One-to-Many relationship: ServiceProvider -> Review
67
+ db . serviceprovider . hasMany ( db . review , { foreignKey : "serviceProviderId" } ) ;
58
68
db . review . belongsTo ( db . serviceprovider , {
59
69
foreignKey : "serviceProviderId" ,
60
70
onDelete : "CASCADE" ,
61
71
} ) ;
62
72
63
- db . serviceprovider . hasMany ( db . transaction , { foreginKey : "serviceProviderId" } ) ;
73
+ // One-to-Many relationship: ServiceProvider -> Transaction
74
+ db . serviceprovider . hasMany ( db . transaction , { foreignKey : "serviceProviderId" } ) ;
64
75
db . transaction . belongsTo ( db . serviceprovider , {
65
76
foreignKey : "serviceProviderId" ,
66
77
onDelete : "CASCADE" ,
67
78
} ) ;
68
79
69
- module . exports = db ;
80
+ module . exports = db ; // Export the configured `db` object for use in other parts of the application
0 commit comments