ojamoto_models 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/models/Device.js CHANGED
@@ -1,82 +1,82 @@
1
- "use strict";
2
-
3
- const { Model, DataTypes } = require("sequelize");
4
-
5
- module.exports = (sequelize) => {
6
- class Device extends Model {
7
- static associate(models) {
8
- Device.belongsTo(models.User, {
9
- foreignKey: "user_id",
10
- as: "user",
11
- });
12
-
13
- Device.hasMany(models.Session, {
14
- foreignKey: "device_id",
15
- as: "sessions",
16
- });
17
- }
18
- }
19
-
20
- Device.init(
21
- {
22
- device_id: {
23
- type: DataTypes.INTEGER,
24
- primaryKey: true,
25
- autoIncrement: true,
26
- },
27
- user_id: {
28
- type: DataTypes.INTEGER,
29
- allowNull: false,
30
- references: { model: "users", key: "user_id" },
31
- onDelete: "CASCADE",
32
- },
33
- device_name: {
34
- type: DataTypes.STRING(100),
35
- allowNull: false,
36
- },
37
- device_type: {
38
- type: DataTypes.STRING(50),
39
- allowNull: false,
40
- comment: "mobile | desktop | tablet",
41
- },
42
- user_device_id: {
43
- type: DataTypes.STRING(100),
44
- allowNull: false,
45
- },
46
- push_notification_id: {
47
- type: DataTypes.STRING(100),
48
- allowNull: false,
49
- },
50
- browser: {
51
- type: DataTypes.STRING(100),
52
- allowNull: true,
53
- },
54
- ip_address: {
55
- type: DataTypes.STRING(45),
56
- allowNull: false,
57
- comment: "IPv4 or IPv6",
58
- },
59
- location: {
60
- type: DataTypes.STRING(500),
61
- allowNull: false,
62
- comment: "City, Country",
63
- },
64
- trusted: {
65
- type: DataTypes.BOOLEAN,
66
- defaultValue: false,
67
- comment: "User-approved device",
68
- },
69
- },
70
- {
71
- sequelize,
72
- modelName: "Device",
73
- tableName: "devices",
74
- timestamps: true,
75
- createdAt: "created_at",
76
- updatedAt: false,
77
- },
78
- );
79
-
80
- Device.removeAttribute("id");
81
- return Device;
82
- };
1
+ "use strict";
2
+
3
+ const { Model, DataTypes } = require("sequelize");
4
+
5
+ module.exports = (sequelize) => {
6
+ class Device extends Model {
7
+ static associate(models) {
8
+ Device.belongsTo(models.User, {
9
+ foreignKey: "user_id",
10
+ as: "user",
11
+ });
12
+
13
+ Device.hasMany(models.Session, {
14
+ foreignKey: "device_id",
15
+ as: "sessions",
16
+ });
17
+ }
18
+ }
19
+
20
+ Device.init(
21
+ {
22
+ device_id: {
23
+ type: DataTypes.INTEGER,
24
+ primaryKey: true,
25
+ autoIncrement: true,
26
+ },
27
+ user_id: {
28
+ type: DataTypes.INTEGER,
29
+ allowNull: false,
30
+ references: { model: "users", key: "user_id" },
31
+ onDelete: "CASCADE",
32
+ },
33
+ device_name: {
34
+ type: DataTypes.STRING(100),
35
+ allowNull: false,
36
+ },
37
+ device_type: {
38
+ type: DataTypes.STRING(50),
39
+ allowNull: false,
40
+ comment: "mobile | desktop | tablet",
41
+ },
42
+ user_device_id: {
43
+ type: DataTypes.STRING(100),
44
+ allowNull: false,
45
+ },
46
+ push_notification_id: {
47
+ type: DataTypes.STRING(100),
48
+ allowNull: false,
49
+ },
50
+ browser: {
51
+ type: DataTypes.STRING(100),
52
+ allowNull: true,
53
+ },
54
+ ip_address: {
55
+ type: DataTypes.STRING(45),
56
+ allowNull: false,
57
+ comment: "IPv4 or IPv6",
58
+ },
59
+ location: {
60
+ type: DataTypes.STRING(500),
61
+ allowNull: false,
62
+ comment: "City, Country",
63
+ },
64
+ trusted: {
65
+ type: DataTypes.BOOLEAN,
66
+ defaultValue: false,
67
+ comment: "User-approved device",
68
+ },
69
+ },
70
+ {
71
+ sequelize,
72
+ modelName: "Device",
73
+ tableName: "devices",
74
+ timestamps: true,
75
+ createdAt: "created_at",
76
+ updatedAt: false,
77
+ },
78
+ );
79
+
80
+ Device.removeAttribute("id");
81
+ return Device;
82
+ };
package/models/Dispute.js CHANGED
@@ -1,109 +1,109 @@
1
- "use strict";
2
-
3
- const { Model, DataTypes } = require("sequelize");
4
- const {
5
- DISPUTE_REASON,
6
- DISPUTE_STATUS,
7
- DISPUTE_RESOLUTION,
8
- } = require("../services/constants");
9
-
10
- module.exports = (sequelize) => {
11
- class Dispute extends Model {
12
- static associate(models) {
13
- Dispute.belongsTo(models.Escrow, {
14
- foreignKey: "escrow_id",
15
- as: "escrow",
16
- });
17
-
18
- Dispute.belongsTo(models.User, {
19
- foreignKey: "opened_by",
20
- as: "opener",
21
- });
22
-
23
- // assigned_admin references admin_users, not users
24
- Dispute.belongsTo(models.AdminUser, {
25
- foreignKey: "assigned_admin",
26
- as: "assignedAdmin",
27
- });
28
-
29
- Dispute.hasMany(models.DisputeEvidence, {
30
- foreignKey: "dispute_id",
31
- as: "evidence",
32
- });
33
-
34
- Dispute.hasMany(models.DisputeMessage, {
35
- foreignKey: "dispute_id",
36
- as: "messages",
37
- });
38
- }
39
- }
40
-
41
- Dispute.init(
42
- {
43
- dispute_id: {
44
- type: DataTypes.INTEGER,
45
- primaryKey: true,
46
- autoIncrement: true,
47
- },
48
- escrow_id: {
49
- type: DataTypes.INTEGER,
50
- allowNull: false,
51
- references: { model: "escrows", key: "escrow_id" },
52
- onDelete: "RESTRICT",
53
- },
54
- opened_by: {
55
- type: DataTypes.INTEGER,
56
- allowNull: false,
57
- references: { model: "users", key: "user_id" },
58
- onDelete: "RESTRICT",
59
- comment: "Buyer or seller who opened the dispute",
60
- },
61
- reason: {
62
- type: DataTypes.ENUM(...Object.values(DISPUTE_REASON)),
63
- allowNull: false,
64
- },
65
- description: {
66
- type: DataTypes.TEXT,
67
- allowNull: false,
68
- comment: "Buyer/seller's initial explanation when opening the dispute",
69
- },
70
- assigned_admin: {
71
- type: DataTypes.INTEGER,
72
- allowNull: true,
73
- references: { model: "admin_users", key: "admin_id" },
74
- onDelete: "SET NULL",
75
- comment: "NULL until assigned by super admin",
76
- },
77
- status: {
78
- type: DataTypes.ENUM(...Object.values(DISPUTE_STATUS)),
79
- allowNull: false,
80
- defaultValue: DISPUTE_STATUS.OPEN,
81
- },
82
- resolution: {
83
- type: DataTypes.ENUM(...Object.values(DISPUTE_RESOLUTION)),
84
- allowNull: true,
85
- defaultValue: null,
86
- },
87
- resolution_note: {
88
- type: DataTypes.TEXT,
89
- allowNull: true,
90
- comment: "Admin explanation of decision",
91
- },
92
- resolved_at: {
93
- type: DataTypes.DATE,
94
- allowNull: true,
95
- },
96
- },
97
- {
98
- sequelize,
99
- modelName: "Dispute",
100
- tableName: "disputes",
101
- timestamps: true,
102
- createdAt: "created_at",
103
- updatedAt: false,
104
- },
105
- );
106
-
107
- Dispute.removeAttribute("id");
108
- return Dispute;
109
- };
1
+ "use strict";
2
+
3
+ const { Model, DataTypes } = require("sequelize");
4
+ const {
5
+ DISPUTE_REASON,
6
+ DISPUTE_STATUS,
7
+ DISPUTE_RESOLUTION,
8
+ } = require("../services/constants");
9
+
10
+ module.exports = (sequelize) => {
11
+ class Dispute extends Model {
12
+ static associate(models) {
13
+ Dispute.belongsTo(models.Escrow, {
14
+ foreignKey: "escrow_id",
15
+ as: "escrow",
16
+ });
17
+
18
+ Dispute.belongsTo(models.User, {
19
+ foreignKey: "opened_by",
20
+ as: "opener",
21
+ });
22
+
23
+ // assigned_admin references admin_users, not users
24
+ Dispute.belongsTo(models.AdminUser, {
25
+ foreignKey: "assigned_admin",
26
+ as: "assignedAdmin",
27
+ });
28
+
29
+ Dispute.hasMany(models.DisputeEvidence, {
30
+ foreignKey: "dispute_id",
31
+ as: "evidence",
32
+ });
33
+
34
+ Dispute.hasMany(models.DisputeMessage, {
35
+ foreignKey: "dispute_id",
36
+ as: "messages",
37
+ });
38
+ }
39
+ }
40
+
41
+ Dispute.init(
42
+ {
43
+ dispute_id: {
44
+ type: DataTypes.INTEGER,
45
+ primaryKey: true,
46
+ autoIncrement: true,
47
+ },
48
+ escrow_id: {
49
+ type: DataTypes.INTEGER,
50
+ allowNull: false,
51
+ references: { model: "escrows", key: "escrow_id" },
52
+ onDelete: "RESTRICT",
53
+ },
54
+ opened_by: {
55
+ type: DataTypes.INTEGER,
56
+ allowNull: false,
57
+ references: { model: "users", key: "user_id" },
58
+ onDelete: "RESTRICT",
59
+ comment: "Buyer or seller who opened the dispute",
60
+ },
61
+ reason: {
62
+ type: DataTypes.ENUM(...Object.values(DISPUTE_REASON)),
63
+ allowNull: false,
64
+ },
65
+ description: {
66
+ type: DataTypes.TEXT,
67
+ allowNull: false,
68
+ comment: "Buyer/seller's initial explanation when opening the dispute",
69
+ },
70
+ assigned_admin: {
71
+ type: DataTypes.INTEGER,
72
+ allowNull: true,
73
+ references: { model: "admin_users", key: "admin_id" },
74
+ onDelete: "SET NULL",
75
+ comment: "NULL until assigned by super admin",
76
+ },
77
+ status: {
78
+ type: DataTypes.ENUM(...Object.values(DISPUTE_STATUS)),
79
+ allowNull: false,
80
+ defaultValue: DISPUTE_STATUS.OPEN,
81
+ },
82
+ resolution: {
83
+ type: DataTypes.ENUM(...Object.values(DISPUTE_RESOLUTION)),
84
+ allowNull: true,
85
+ defaultValue: null,
86
+ },
87
+ resolution_note: {
88
+ type: DataTypes.TEXT,
89
+ allowNull: true,
90
+ comment: "Admin explanation of decision",
91
+ },
92
+ resolved_at: {
93
+ type: DataTypes.DATE,
94
+ allowNull: true,
95
+ },
96
+ },
97
+ {
98
+ sequelize,
99
+ modelName: "Dispute",
100
+ tableName: "disputes",
101
+ timestamps: true,
102
+ createdAt: "created_at",
103
+ updatedAt: false,
104
+ },
105
+ );
106
+
107
+ Dispute.removeAttribute("id");
108
+ return Dispute;
109
+ };
@@ -1,62 +1,62 @@
1
- "use strict";
2
-
3
- const { Model, DataTypes } = require("sequelize");
4
- const { EVIDENCE_FILE_TYPE } = require("../services/constants");
5
-
6
- module.exports = (sequelize) => {
7
- class DisputeEvidence extends Model {
8
- static associate(models) {
9
- DisputeEvidence.belongsTo(models.Dispute, {
10
- foreignKey: "dispute_id",
11
- as: "dispute",
12
- });
13
-
14
- DisputeEvidence.belongsTo(models.User, {
15
- foreignKey: "uploaded_by",
16
- as: "uploader",
17
- });
18
- }
19
- }
20
-
21
- DisputeEvidence.init(
22
- {
23
- dispute_evidence_id: {
24
- type: DataTypes.INTEGER,
25
- primaryKey: true,
26
- autoIncrement: true,
27
- },
28
- dispute_id: {
29
- type: DataTypes.INTEGER,
30
- allowNull: false,
31
- references: { model: "disputes", key: "dispute_id" },
32
- onDelete: "CASCADE",
33
- },
34
- uploaded_by: {
35
- type: DataTypes.INTEGER,
36
- allowNull: false,
37
- references: { model: "users", key: "user_id" },
38
- onDelete: "RESTRICT",
39
- },
40
- file_url: {
41
- type: DataTypes.STRING(500),
42
- allowNull: false,
43
- comment: "AWS S3 URL",
44
- },
45
- file_type: {
46
- type: DataTypes.ENUM(...Object.values(EVIDENCE_FILE_TYPE)),
47
- allowNull: false,
48
- },
49
- },
50
- {
51
- sequelize,
52
- modelName: "DisputeEvidence",
53
- tableName: "dispute_evidence",
54
- timestamps: true,
55
- createdAt: "created_at",
56
- updatedAt: false,
57
- },
58
- );
59
-
60
- DisputeEvidence.removeAttribute("id");
61
- return DisputeEvidence;
62
- };
1
+ "use strict";
2
+
3
+ const { Model, DataTypes } = require("sequelize");
4
+ const { EVIDENCE_FILE_TYPE } = require("../services/constants");
5
+
6
+ module.exports = (sequelize) => {
7
+ class DisputeEvidence extends Model {
8
+ static associate(models) {
9
+ DisputeEvidence.belongsTo(models.Dispute, {
10
+ foreignKey: "dispute_id",
11
+ as: "dispute",
12
+ });
13
+
14
+ DisputeEvidence.belongsTo(models.User, {
15
+ foreignKey: "uploaded_by",
16
+ as: "uploader",
17
+ });
18
+ }
19
+ }
20
+
21
+ DisputeEvidence.init(
22
+ {
23
+ dispute_evidence_id: {
24
+ type: DataTypes.INTEGER,
25
+ primaryKey: true,
26
+ autoIncrement: true,
27
+ },
28
+ dispute_id: {
29
+ type: DataTypes.INTEGER,
30
+ allowNull: false,
31
+ references: { model: "disputes", key: "dispute_id" },
32
+ onDelete: "CASCADE",
33
+ },
34
+ uploaded_by: {
35
+ type: DataTypes.INTEGER,
36
+ allowNull: false,
37
+ references: { model: "users", key: "user_id" },
38
+ onDelete: "RESTRICT",
39
+ },
40
+ file_url: {
41
+ type: DataTypes.STRING(500),
42
+ allowNull: false,
43
+ comment: "AWS S3 URL",
44
+ },
45
+ file_type: {
46
+ type: DataTypes.ENUM(...Object.values(EVIDENCE_FILE_TYPE)),
47
+ allowNull: false,
48
+ },
49
+ },
50
+ {
51
+ sequelize,
52
+ modelName: "DisputeEvidence",
53
+ tableName: "dispute_evidence",
54
+ timestamps: true,
55
+ createdAt: "created_at",
56
+ updatedAt: false,
57
+ },
58
+ );
59
+
60
+ DisputeEvidence.removeAttribute("id");
61
+ return DisputeEvidence;
62
+ };
@@ -1,57 +1,57 @@
1
- "use strict";
2
-
3
- const { Model, DataTypes } = require("sequelize");
4
-
5
- module.exports = (sequelize) => {
6
- class DisputeMessage extends Model {
7
- static associate(models) {
8
- DisputeMessage.belongsTo(models.Dispute, {
9
- foreignKey: "dispute_id",
10
- as: "dispute",
11
- });
12
-
13
- DisputeMessage.belongsTo(models.User, {
14
- foreignKey: "sender_id",
15
- as: "sender",
16
- });
17
- }
18
- }
19
-
20
- DisputeMessage.init(
21
- {
22
- dispute_message_id: {
23
- type: DataTypes.INTEGER,
24
- primaryKey: true,
25
- autoIncrement: true,
26
- },
27
- dispute_id: {
28
- type: DataTypes.INTEGER,
29
- allowNull: false,
30
- references: { model: "disputes", key: "dispute_id" },
31
- onDelete: "CASCADE",
32
- },
33
- sender_id: {
34
- type: DataTypes.INTEGER,
35
- allowNull: false,
36
- references: { model: "users", key: "user_id" },
37
- onDelete: "RESTRICT",
38
- comment: "Buyer or seller user id",
39
- },
40
- message: {
41
- type: DataTypes.TEXT,
42
- allowNull: false,
43
- },
44
- },
45
- {
46
- sequelize,
47
- modelName: "DisputeMessage",
48
- tableName: "dispute_messages",
49
- timestamps: true,
50
- createdAt: "created_at",
51
- updatedAt: false,
52
- },
53
- );
54
-
55
- DisputeMessage.removeAttribute("id");
56
- return DisputeMessage;
57
- };
1
+ "use strict";
2
+
3
+ const { Model, DataTypes } = require("sequelize");
4
+
5
+ module.exports = (sequelize) => {
6
+ class DisputeMessage extends Model {
7
+ static associate(models) {
8
+ DisputeMessage.belongsTo(models.Dispute, {
9
+ foreignKey: "dispute_id",
10
+ as: "dispute",
11
+ });
12
+
13
+ DisputeMessage.belongsTo(models.User, {
14
+ foreignKey: "sender_id",
15
+ as: "sender",
16
+ });
17
+ }
18
+ }
19
+
20
+ DisputeMessage.init(
21
+ {
22
+ dispute_message_id: {
23
+ type: DataTypes.INTEGER,
24
+ primaryKey: true,
25
+ autoIncrement: true,
26
+ },
27
+ dispute_id: {
28
+ type: DataTypes.INTEGER,
29
+ allowNull: false,
30
+ references: { model: "disputes", key: "dispute_id" },
31
+ onDelete: "CASCADE",
32
+ },
33
+ sender_id: {
34
+ type: DataTypes.INTEGER,
35
+ allowNull: false,
36
+ references: { model: "users", key: "user_id" },
37
+ onDelete: "RESTRICT",
38
+ comment: "Buyer or seller user id",
39
+ },
40
+ message: {
41
+ type: DataTypes.TEXT,
42
+ allowNull: false,
43
+ },
44
+ },
45
+ {
46
+ sequelize,
47
+ modelName: "DisputeMessage",
48
+ tableName: "dispute_messages",
49
+ timestamps: true,
50
+ createdAt: "created_at",
51
+ updatedAt: false,
52
+ },
53
+ );
54
+
55
+ DisputeMessage.removeAttribute("id");
56
+ return DisputeMessage;
57
+ };