db-model-router 1.0.5 → 1.0.7

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.
Files changed (136) hide show
  1. package/README.md +150 -11
  2. package/TODO.md +0 -14
  3. package/db-manager/.dbmanager.sqlite +0 -0
  4. package/db-manager/README.md +223 -0
  5. package/db-manager/adapter-proxy.js +361 -0
  6. package/db-manager/demo/cockroachdb.env +6 -0
  7. package/db-manager/demo/demo.sqlite +0 -0
  8. package/db-manager/demo/dynamodb.env +7 -0
  9. package/db-manager/demo/mongodb.env +4 -0
  10. package/db-manager/demo/mssql.env +6 -0
  11. package/db-manager/demo/mysql.env +6 -0
  12. package/db-manager/demo/oracle.env +6 -0
  13. package/db-manager/demo/postgres.env +6 -0
  14. package/db-manager/demo/redis.env +4 -0
  15. package/db-manager/demo/seeds/cockroachdb.sql +32 -0
  16. package/db-manager/demo/seeds/mssql.sql +32 -0
  17. package/db-manager/demo/seeds/mysql.sql +32 -0
  18. package/db-manager/demo/seeds/oracle.sql +43 -0
  19. package/db-manager/demo/seeds/postgres.sql +32 -0
  20. package/db-manager/demo/seeds/sqlite3.sql +32 -0
  21. package/db-manager/demo/sqlite3.env +2 -0
  22. package/db-manager/metadata-db.js +170 -0
  23. package/db-manager/public/.gitkeep +1 -0
  24. package/db-manager/public/css/style.css +1413 -0
  25. package/db-manager/public/js/app.js +1370 -0
  26. package/db-manager/routes/api.js +388 -0
  27. package/db-manager/routes/views.js +61 -0
  28. package/db-manager/server.js +39 -0
  29. package/db-manager/utils/build-filter-config.js +18 -0
  30. package/db-manager/utils/csv-export.js +59 -0
  31. package/db-manager/utils/export-filename.js +39 -0
  32. package/db-manager/utils/filter-tables.js +20 -0
  33. package/db-manager/utils/parse-filters.js +93 -0
  34. package/db-manager/utils/sort-state.js +35 -0
  35. package/db-manager/views/.gitkeep +1 -0
  36. package/db-manager/views/dashboard.ejs +53 -0
  37. package/db-manager/views/history.ejs +52 -0
  38. package/db-manager/views/index.ejs +35 -0
  39. package/db-manager/views/layout.ejs +31 -0
  40. package/db-manager/views/partials/data-panel.ejs +74 -0
  41. package/db-manager/views/partials/header.ejs +36 -0
  42. package/db-manager/views/partials/sidebar.ejs +30 -0
  43. package/db-manager/views/query.ejs +58 -0
  44. package/dbmr.schema.json +23 -45
  45. package/demo/.env.example +1 -0
  46. package/demo/app.js +3 -1
  47. package/demo/commons/db.js +11 -0
  48. package/demo/commons/migrate.js +3 -0
  49. package/demo/commons/modules.js +18 -0
  50. package/demo/commons/password.js +36 -0
  51. package/demo/commons/webhook.js +81 -0
  52. package/demo/dbmr.schema.json +22 -46
  53. package/demo/middleware/authenticate.js +14 -0
  54. package/demo/middleware/hasPermission.js +30 -0
  55. package/demo/middleware/tenantIsolation.js +17 -0
  56. package/demo/migrations/20260509170349_create_saas_tables.sql +69 -0
  57. package/demo/migrations/{20260430155809_create_tables.sql → 20260509170349_create_tables.sql} +11 -25
  58. package/demo/models/addresses.js +5 -3
  59. package/demo/models/cart_items.js +5 -3
  60. package/demo/models/carts.js +5 -3
  61. package/demo/models/categories.js +5 -3
  62. package/demo/models/coupons.js +5 -3
  63. package/demo/models/index.js +43 -0
  64. package/demo/models/order_items.js +4 -2
  65. package/demo/models/orders.js +5 -3
  66. package/demo/models/payments.js +5 -3
  67. package/demo/models/product_images.js +4 -2
  68. package/demo/models/product_reviews.js +5 -3
  69. package/demo/models/product_variants.js +5 -3
  70. package/demo/models/products.js +5 -3
  71. package/demo/models/role_permissions.js +17 -0
  72. package/demo/models/roles.js +17 -0
  73. package/demo/models/shipments.js +5 -3
  74. package/demo/models/tenants.js +18 -0
  75. package/demo/models/users.js +12 -8
  76. package/demo/models/webhook_logs.js +22 -0
  77. package/demo/models/webhooks.js +19 -0
  78. package/demo/models/wishlists.js +4 -2
  79. package/demo/openapi.json +1744 -616
  80. package/demo/package-lock.json +24 -24
  81. package/demo/package.json +9 -0
  82. package/demo/routes/{addresses.js → addresses/index.js} +1 -1
  83. package/demo/routes/auth/index.js +55 -0
  84. package/demo/routes/carts/{cart_items.js → cart_items/index.js} +1 -1
  85. package/demo/routes/{carts.js → carts/index.js} +1 -1
  86. package/demo/routes/{categories.js → categories/index.js} +1 -1
  87. package/demo/routes/{coupons.js → coupons/index.js} +1 -1
  88. package/demo/routes/index.js +39 -24
  89. package/demo/routes/{orders.js → orders/index.js} +1 -1
  90. package/demo/routes/orders/{order_items.js → order_items/index.js} +1 -1
  91. package/demo/routes/orders/{payments.js → payments/index.js} +1 -1
  92. package/demo/routes/orders/{shipments.js → shipments/index.js} +1 -1
  93. package/demo/routes/{products.js → products/index.js} +1 -1
  94. package/demo/routes/products/{product_images.js → product_images/index.js} +1 -1
  95. package/demo/routes/products/{product_reviews.js → product_reviews/index.js} +1 -1
  96. package/demo/routes/products/{product_variants.js → product_variants/index.js} +1 -1
  97. package/demo/routes/roles/index.js +75 -0
  98. package/demo/routes/roles/permissions/index.js +47 -0
  99. package/demo/routes/tenants/index.js +45 -0
  100. package/demo/routes/users/index.js +45 -0
  101. package/demo/routes/{wishlists.js → wishlists/index.js} +1 -1
  102. package/demo/seeds/saas-seed.js +329 -0
  103. package/docker-compose.yml +61 -0
  104. package/package.json +120 -113
  105. package/scripts/demo-create.js +1 -1
  106. package/skill/SKILL.md +119 -3
  107. package/src/cli/commands/db-manager.js +134 -0
  108. package/src/cli/commands/generate.js +112 -43
  109. package/src/cli/commands/help.js +0 -1
  110. package/src/cli/diff-engine.js +2 -1
  111. package/src/cli/generate-model.js +9 -4
  112. package/src/cli/generate-openapi.js +40 -13
  113. package/src/cli/generate-route.js +61 -22
  114. package/src/cli/generate-saas-structure.js +122 -0
  115. package/src/cli/init/generators.js +42 -30
  116. package/src/cli/init.js +8 -0
  117. package/src/cli/main.js +8 -1
  118. package/src/cli/saas/generate-saas-middleware.js +108 -0
  119. package/src/cli/saas/generate-saas-migrations.js +480 -0
  120. package/src/cli/saas/generate-saas-models.js +211 -0
  121. package/src/cli/saas/generate-saas-openapi.js +419 -0
  122. package/src/cli/saas/generate-saas-routes.js +435 -0
  123. package/src/cli/saas/generate-saas-seeds.js +243 -0
  124. package/src/cli/saas/generate-saas-utils.js +176 -0
  125. package/src/commons/kafka.js +139 -0
  126. package/src/commons/model.js +29 -9
  127. package/src/index.js +2 -0
  128. package/src/mssql/db.js +41 -3
  129. package/src/mysql/db.js +3 -0
  130. package/src/postgres/db.js +6 -0
  131. package/src/sqlite3/db.js +11 -0
  132. package/demo/docs/llm.md +0 -197
  133. package/demo/llms.txt +0 -70
  134. package/demo/routes/users.js +0 -6
  135. package/src/cli/commands/generate-llm-docs.js +0 -418
  136. /package/demo/migrations/{20260430155808_create_migrations_table.sql → 20260509170349_create_migrations_table.sql} +0 -0
@@ -0,0 +1,69 @@
1
+ CREATE TABLE IF NOT EXISTS tenants (
2
+ tenant_id INTEGER PRIMARY KEY AUTOINCREMENT,
3
+ name VARCHAR(255) NOT NULL,
4
+ slug VARCHAR(255) NOT NULL,
5
+ attributes TEXT,
6
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
7
+ modified_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
8
+ UNIQUE (slug)
9
+ );
10
+
11
+ CREATE TABLE IF NOT EXISTS roles (
12
+ role_id INTEGER PRIMARY KEY AUTOINCREMENT,
13
+ tenant_id INTEGER,
14
+ name VARCHAR(255) NOT NULL,
15
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
16
+ modified_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
17
+ FOREIGN KEY (tenant_id) REFERENCES tenants(tenant_id),
18
+ UNIQUE (tenant_id, name)
19
+ );
20
+
21
+ CREATE TABLE IF NOT EXISTS users (
22
+ user_id INTEGER PRIMARY KEY AUTOINCREMENT,
23
+ email VARCHAR(255) NOT NULL,
24
+ phone VARCHAR(255),
25
+ password_hash VARCHAR(255) NOT NULL,
26
+ name VARCHAR(255) NOT NULL,
27
+ unique_attribute VARCHAR(255) NOT NULL,
28
+ tenant_id INTEGER,
29
+ role_id INTEGER NOT NULL,
30
+ attributes TEXT,
31
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
32
+ modified_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
33
+ FOREIGN KEY (tenant_id) REFERENCES tenants(tenant_id),
34
+ FOREIGN KEY (role_id) REFERENCES roles(role_id),
35
+ UNIQUE (tenant_id, unique_attribute)
36
+ );
37
+
38
+ CREATE TABLE IF NOT EXISTS role_permissions (
39
+ role_permission_id INTEGER PRIMARY KEY AUTOINCREMENT,
40
+ role_id INTEGER NOT NULL,
41
+ permission TEXT NOT NULL,
42
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
43
+ modified_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
44
+ FOREIGN KEY (role_id) REFERENCES roles(role_id)
45
+ );
46
+
47
+ CREATE TABLE IF NOT EXISTS webhooks (
48
+ webhook_id INTEGER PRIMARY KEY AUTOINCREMENT,
49
+ tenant_id INTEGER NOT NULL,
50
+ url VARCHAR(255) NOT NULL,
51
+ key VARCHAR(255) NOT NULL,
52
+ secret VARCHAR(255) NOT NULL,
53
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
54
+ modified_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
55
+ FOREIGN KEY (tenant_id) REFERENCES tenants(tenant_id)
56
+ );
57
+
58
+ CREATE TABLE IF NOT EXISTS webhook_logs (
59
+ webhook_log_id INTEGER PRIMARY KEY AUTOINCREMENT,
60
+ webhook_id INTEGER NOT NULL,
61
+ tenant_id INTEGER NOT NULL,
62
+ event_type VARCHAR(255) NOT NULL,
63
+ payload TEXT NOT NULL,
64
+ status VARCHAR(255) NOT NULL,
65
+ response_body TEXT,
66
+ response_status_code INTEGER,
67
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
68
+ FOREIGN KEY (webhook_id) REFERENCES webhooks(webhook_id)
69
+ );
@@ -10,7 +10,7 @@ CREATE TABLE IF NOT EXISTS addresses (
10
10
  country VARCHAR(255) NOT NULL,
11
11
  is_default BOOLEAN,
12
12
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
13
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
13
+ modified_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
14
14
  );
15
15
 
16
16
  CREATE TABLE IF NOT EXISTS cart_items (
@@ -21,7 +21,7 @@ CREATE TABLE IF NOT EXISTS cart_items (
21
21
  quantity INTEGER NOT NULL,
22
22
  unit_price DECIMAL(12,2) NOT NULL,
23
23
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
24
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
24
+ modified_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
25
25
  );
26
26
 
27
27
  CREATE TABLE IF NOT EXISTS carts (
@@ -30,7 +30,7 @@ CREATE TABLE IF NOT EXISTS carts (
30
30
  session_id VARCHAR(255),
31
31
  currency VARCHAR(255) NOT NULL,
32
32
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
33
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
33
+ modified_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
34
34
  );
35
35
 
36
36
  CREATE TABLE IF NOT EXISTS categories (
@@ -43,7 +43,7 @@ CREATE TABLE IF NOT EXISTS categories (
43
43
  sort_order INTEGER,
44
44
  is_active BOOLEAN,
45
45
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
46
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
46
+ modified_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
47
47
  UNIQUE (slug)
48
48
  );
49
49
 
@@ -60,7 +60,7 @@ CREATE TABLE IF NOT EXISTS coupons (
60
60
  expires_at TIMESTAMP,
61
61
  is_active BOOLEAN,
62
62
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
63
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
63
+ modified_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
64
64
  UNIQUE (code)
65
65
  );
66
66
 
@@ -92,7 +92,7 @@ CREATE TABLE IF NOT EXISTS orders (
92
92
  billing_address_id INTEGER,
93
93
  notes VARCHAR(255),
94
94
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
95
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
95
+ modified_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
96
96
  UNIQUE (order_number)
97
97
  );
98
98
 
@@ -107,7 +107,7 @@ CREATE TABLE IF NOT EXISTS payments (
107
107
  status VARCHAR(255) NOT NULL,
108
108
  paid_at TIMESTAMP,
109
109
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
110
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
110
+ modified_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
111
111
  );
112
112
 
113
113
  CREATE TABLE IF NOT EXISTS product_images (
@@ -130,7 +130,7 @@ CREATE TABLE IF NOT EXISTS product_reviews (
130
130
  is_verified BOOLEAN,
131
131
  is_approved BOOLEAN,
132
132
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
133
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
133
+ modified_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
134
134
  );
135
135
 
136
136
  CREATE TABLE IF NOT EXISTS product_variants (
@@ -143,7 +143,7 @@ CREATE TABLE IF NOT EXISTS product_variants (
143
143
  attributes TEXT,
144
144
  is_active BOOLEAN,
145
145
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
146
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
146
+ modified_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
147
147
  UNIQUE (sku)
148
148
  );
149
149
 
@@ -168,7 +168,7 @@ CREATE TABLE IF NOT EXISTS products (
168
168
  is_deleted BOOLEAN DEFAULT FALSE,
169
169
  meta TEXT,
170
170
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
171
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
171
+ modified_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
172
172
  UNIQUE (sku),
173
173
  UNIQUE (slug)
174
174
  );
@@ -182,21 +182,7 @@ CREATE TABLE IF NOT EXISTS shipments (
182
182
  shipped_at TIMESTAMP,
183
183
  delivered_at TIMESTAMP,
184
184
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
185
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
186
- );
187
-
188
- CREATE TABLE IF NOT EXISTS users (
189
- user_id INTEGER PRIMARY KEY AUTOINCREMENT,
190
- name VARCHAR(255) NOT NULL,
191
- email VARCHAR(255) NOT NULL,
192
- password_hash VARCHAR(255) NOT NULL,
193
- phone VARCHAR(255),
194
- avatar_url VARCHAR(255),
195
- role VARCHAR(255) NOT NULL,
196
- is_deleted BOOLEAN DEFAULT FALSE,
197
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
198
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
199
- UNIQUE (email)
185
+ modified_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
200
186
  );
201
187
 
202
188
  CREATE TABLE IF NOT EXISTS wishlists (
@@ -1,4 +1,6 @@
1
- const { db, model } = require("db-model-router");
1
+ import dbModelRouter from "db-model-router";
2
+
3
+ const { db, model } = dbModelRouter;
2
4
 
3
5
  const addresses = model(
4
6
  db,
@@ -16,7 +18,7 @@ const addresses = model(
16
18
  },
17
19
  "address_id",
18
20
  ["address_id"],
19
- { created_at: "created_at", modified_at: "updated_at" },
21
+ { created_at: "created_at", modified_at: "modified_at" },
20
22
  );
21
23
 
22
- module.exports = addresses;
24
+ export default addresses;
@@ -1,4 +1,6 @@
1
- const { db, model } = require("db-model-router");
1
+ import dbModelRouter from "db-model-router";
2
+
3
+ const { db, model } = dbModelRouter;
2
4
 
3
5
  const cart_items = model(
4
6
  db,
@@ -12,7 +14,7 @@ const cart_items = model(
12
14
  },
13
15
  "cart_item_id",
14
16
  ["cart_item_id"],
15
- { created_at: "created_at", modified_at: "updated_at" },
17
+ { created_at: "created_at", modified_at: "modified_at" },
16
18
  );
17
19
 
18
- module.exports = cart_items;
20
+ export default cart_items;
@@ -1,4 +1,6 @@
1
- const { db, model } = require("db-model-router");
1
+ import dbModelRouter from "db-model-router";
2
+
3
+ const { db, model } = dbModelRouter;
2
4
 
3
5
  const carts = model(
4
6
  db,
@@ -10,7 +12,7 @@ const carts = model(
10
12
  },
11
13
  "cart_id",
12
14
  ["cart_id"],
13
- { created_at: "created_at", modified_at: "updated_at" },
15
+ { created_at: "created_at", modified_at: "modified_at" },
14
16
  );
15
17
 
16
- module.exports = carts;
18
+ export default carts;
@@ -1,4 +1,6 @@
1
- const { db, model } = require("db-model-router");
1
+ import dbModelRouter from "db-model-router";
2
+
3
+ const { db, model } = dbModelRouter;
2
4
 
3
5
  const categories = model(
4
6
  db,
@@ -14,7 +16,7 @@ const categories = model(
14
16
  },
15
17
  "category_id",
16
18
  ["slug"],
17
- { created_at: "created_at", modified_at: "updated_at" },
19
+ { created_at: "created_at", modified_at: "modified_at" },
18
20
  );
19
21
 
20
- module.exports = categories;
22
+ export default categories;
@@ -1,4 +1,6 @@
1
- const { db, model } = require("db-model-router");
1
+ import dbModelRouter from "db-model-router";
2
+
3
+ const { db, model } = dbModelRouter;
2
4
 
3
5
  const coupons = model(
4
6
  db,
@@ -17,7 +19,7 @@ const coupons = model(
17
19
  },
18
20
  "coupon_id",
19
21
  ["code"],
20
- { created_at: "created_at", modified_at: "updated_at" },
22
+ { created_at: "created_at", modified_at: "modified_at" },
21
23
  );
22
24
 
23
- module.exports = coupons;
25
+ export default coupons;
@@ -0,0 +1,43 @@
1
+ import tenants from "./tenants.js";
2
+ import roles from "./roles.js";
3
+ import users from "./users.js";
4
+ import role_permissions from "./role_permissions.js";
5
+ import webhooks from "./webhooks.js";
6
+ import webhook_logs from "./webhook_logs.js";
7
+ import addresses from "./addresses.js";
8
+ import cart_items from "./cart_items.js";
9
+ import carts from "./carts.js";
10
+ import categories from "./categories.js";
11
+ import coupons from "./coupons.js";
12
+ import order_items from "./order_items.js";
13
+ import orders from "./orders.js";
14
+ import payments from "./payments.js";
15
+ import product_images from "./product_images.js";
16
+ import product_reviews from "./product_reviews.js";
17
+ import product_variants from "./product_variants.js";
18
+ import products from "./products.js";
19
+ import shipments from "./shipments.js";
20
+ import wishlists from "./wishlists.js";
21
+
22
+ export {
23
+ tenants,
24
+ roles,
25
+ users,
26
+ role_permissions,
27
+ webhooks,
28
+ webhook_logs,
29
+ addresses,
30
+ cart_items,
31
+ carts,
32
+ categories,
33
+ coupons,
34
+ order_items,
35
+ orders,
36
+ payments,
37
+ product_images,
38
+ product_reviews,
39
+ product_variants,
40
+ products,
41
+ shipments,
42
+ wishlists,
43
+ };
@@ -1,4 +1,6 @@
1
- const { db, model } = require("db-model-router");
1
+ import dbModelRouter from "db-model-router";
2
+
3
+ const { db, model } = dbModelRouter;
2
4
 
3
5
  const order_items = model(
4
6
  db,
@@ -18,4 +20,4 @@ const order_items = model(
18
20
  { created_at: "created_at" },
19
21
  );
20
22
 
21
- module.exports = order_items;
23
+ export default order_items;
@@ -1,4 +1,6 @@
1
- const { db, model } = require("db-model-router");
1
+ import dbModelRouter from "db-model-router";
2
+
3
+ const { db, model } = dbModelRouter;
2
4
 
3
5
  const orders = model(
4
6
  db,
@@ -19,7 +21,7 @@ const orders = model(
19
21
  },
20
22
  "order_id",
21
23
  ["order_number"],
22
- { created_at: "created_at", modified_at: "updated_at" },
24
+ { created_at: "created_at", modified_at: "modified_at" },
23
25
  );
24
26
 
25
- module.exports = orders;
27
+ export default orders;
@@ -1,4 +1,6 @@
1
- const { db, model } = require("db-model-router");
1
+ import dbModelRouter from "db-model-router";
2
+
3
+ const { db, model } = dbModelRouter;
2
4
 
3
5
  const payments = model(
4
6
  db,
@@ -15,7 +17,7 @@ const payments = model(
15
17
  },
16
18
  "payment_id",
17
19
  ["payment_id"],
18
- { created_at: "created_at", modified_at: "updated_at" },
20
+ { created_at: "created_at", modified_at: "modified_at" },
19
21
  );
20
22
 
21
- module.exports = payments;
23
+ export default payments;
@@ -1,4 +1,6 @@
1
- const { db, model } = require("db-model-router");
1
+ import dbModelRouter from "db-model-router";
2
+
3
+ const { db, model } = dbModelRouter;
2
4
 
3
5
  const product_images = model(
4
6
  db,
@@ -15,4 +17,4 @@ const product_images = model(
15
17
  { created_at: "created_at" },
16
18
  );
17
19
 
18
- module.exports = product_images;
20
+ export default product_images;
@@ -1,4 +1,6 @@
1
- const { db, model } = require("db-model-router");
1
+ import dbModelRouter from "db-model-router";
2
+
3
+ const { db, model } = dbModelRouter;
2
4
 
3
5
  const product_reviews = model(
4
6
  db,
@@ -14,7 +16,7 @@ const product_reviews = model(
14
16
  },
15
17
  "review_id",
16
18
  ["review_id"],
17
- { created_at: "created_at", modified_at: "updated_at" },
19
+ { created_at: "created_at", modified_at: "modified_at" },
18
20
  );
19
21
 
20
- module.exports = product_reviews;
22
+ export default product_reviews;
@@ -1,4 +1,6 @@
1
- const { db, model } = require("db-model-router");
1
+ import dbModelRouter from "db-model-router";
2
+
3
+ const { db, model } = dbModelRouter;
2
4
 
3
5
  const product_variants = model(
4
6
  db,
@@ -14,7 +16,7 @@ const product_variants = model(
14
16
  },
15
17
  "variant_id",
16
18
  ["sku"],
17
- { created_at: "created_at", modified_at: "updated_at" },
19
+ { created_at: "created_at", modified_at: "modified_at" },
18
20
  );
19
21
 
20
- module.exports = product_variants;
22
+ export default product_variants;
@@ -1,4 +1,6 @@
1
- const { db, model } = require("db-model-router");
1
+ import dbModelRouter from "db-model-router";
2
+
3
+ const { db, model } = dbModelRouter;
2
4
 
3
5
  const products = model(
4
6
  db,
@@ -24,7 +26,7 @@ const products = model(
24
26
  },
25
27
  "product_id",
26
28
  ["sku","slug"],
27
- { safeDelete: "is_deleted", created_at: "created_at", modified_at: "updated_at" },
29
+ { safeDelete: "is_deleted", created_at: "created_at", modified_at: "modified_at" },
28
30
  );
29
31
 
30
- module.exports = products;
32
+ export default products;
@@ -0,0 +1,17 @@
1
+ import dbModelRouter from "db-model-router";
2
+
3
+ const { db, model } = dbModelRouter;
4
+
5
+ const role_permissions = model(
6
+ db,
7
+ "role_permissions",
8
+ {
9
+ "role_id": "required|integer",
10
+ "permission": "required|object"
11
+ },
12
+ "role_permission_id",
13
+ ["role_permission_id"],
14
+ { created_at: "created_at", modified_at: "modified_at" },
15
+ );
16
+
17
+ export default role_permissions;
@@ -0,0 +1,17 @@
1
+ import dbModelRouter from "db-model-router";
2
+
3
+ const { db, model } = dbModelRouter;
4
+
5
+ const roles = model(
6
+ db,
7
+ "roles",
8
+ {
9
+ "tenant_id": "integer",
10
+ "name": "required|string"
11
+ },
12
+ "role_id",
13
+ ["tenant_id","name"],
14
+ { created_at: "created_at", modified_at: "modified_at" },
15
+ );
16
+
17
+ export default roles;
@@ -1,4 +1,6 @@
1
- const { db, model } = require("db-model-router");
1
+ import dbModelRouter from "db-model-router";
2
+
3
+ const { db, model } = dbModelRouter;
2
4
 
3
5
  const shipments = model(
4
6
  db,
@@ -13,7 +15,7 @@ const shipments = model(
13
15
  },
14
16
  "shipment_id",
15
17
  ["shipment_id"],
16
- { created_at: "created_at", modified_at: "updated_at" },
18
+ { created_at: "created_at", modified_at: "modified_at" },
17
19
  );
18
20
 
19
- module.exports = shipments;
21
+ export default shipments;
@@ -0,0 +1,18 @@
1
+ import dbModelRouter from "db-model-router";
2
+
3
+ const { db, model } = dbModelRouter;
4
+
5
+ const tenants = model(
6
+ db,
7
+ "tenants",
8
+ {
9
+ "name": "required|string",
10
+ "slug": "required|string",
11
+ "attributes": "object"
12
+ },
13
+ "tenant_id",
14
+ ["slug"],
15
+ { created_at: "created_at", modified_at: "modified_at" },
16
+ );
17
+
18
+ export default tenants;
@@ -1,19 +1,23 @@
1
- const { db, model } = require("db-model-router");
1
+ import dbModelRouter from "db-model-router";
2
+
3
+ const { db, model } = dbModelRouter;
2
4
 
3
5
  const users = model(
4
6
  db,
5
7
  "users",
6
8
  {
7
- "name": "required|string",
8
9
  "email": "required|string",
9
- "password_hash": "required|string",
10
10
  "phone": "string",
11
- "avatar_url": "string",
12
- "role": "required|string"
11
+ "password_hash": "required|string",
12
+ "name": "required|string",
13
+ "unique_attribute": "required|string",
14
+ "tenant_id": "integer",
15
+ "role_id": "required|integer",
16
+ "attributes": "object"
13
17
  },
14
18
  "user_id",
15
- ["email"],
16
- { safeDelete: "is_deleted", created_at: "created_at", modified_at: "updated_at" },
19
+ ["tenant_id","unique_attribute"],
20
+ { created_at: "created_at", modified_at: "modified_at" },
17
21
  );
18
22
 
19
- module.exports = users;
23
+ export default users;
@@ -0,0 +1,22 @@
1
+ import dbModelRouter from "db-model-router";
2
+
3
+ const { db, model } = dbModelRouter;
4
+
5
+ const webhook_logs = model(
6
+ db,
7
+ "webhook_logs",
8
+ {
9
+ "webhook_id": "required|integer",
10
+ "tenant_id": "required|integer",
11
+ "event_type": "required|string",
12
+ "payload": "required|object",
13
+ "status": "required|string",
14
+ "response_body": "string",
15
+ "response_status_code": "integer"
16
+ },
17
+ "webhook_log_id",
18
+ ["webhook_log_id"],
19
+ { created_at: "created_at" },
20
+ );
21
+
22
+ export default webhook_logs;
@@ -0,0 +1,19 @@
1
+ import dbModelRouter from "db-model-router";
2
+
3
+ const { db, model } = dbModelRouter;
4
+
5
+ const webhooks = model(
6
+ db,
7
+ "webhooks",
8
+ {
9
+ "tenant_id": "required|integer",
10
+ "url": "required|string",
11
+ "key": "required|string",
12
+ "secret": "required|string"
13
+ },
14
+ "webhook_id",
15
+ ["webhook_id"],
16
+ { created_at: "created_at", modified_at: "modified_at" },
17
+ );
18
+
19
+ export default webhooks;
@@ -1,4 +1,6 @@
1
- const { db, model } = require("db-model-router");
1
+ import dbModelRouter from "db-model-router";
2
+
3
+ const { db, model } = dbModelRouter;
2
4
 
3
5
  const wishlists = model(
4
6
  db,
@@ -12,4 +14,4 @@ const wishlists = model(
12
14
  { created_at: "created_at" },
13
15
  );
14
16
 
15
- module.exports = wishlists;
17
+ export default wishlists;