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.
- package/README.md +150 -11
- package/TODO.md +0 -14
- package/db-manager/.dbmanager.sqlite +0 -0
- package/db-manager/README.md +223 -0
- package/db-manager/adapter-proxy.js +361 -0
- package/db-manager/demo/cockroachdb.env +6 -0
- package/db-manager/demo/demo.sqlite +0 -0
- package/db-manager/demo/dynamodb.env +7 -0
- package/db-manager/demo/mongodb.env +4 -0
- package/db-manager/demo/mssql.env +6 -0
- package/db-manager/demo/mysql.env +6 -0
- package/db-manager/demo/oracle.env +6 -0
- package/db-manager/demo/postgres.env +6 -0
- package/db-manager/demo/redis.env +4 -0
- package/db-manager/demo/seeds/cockroachdb.sql +32 -0
- package/db-manager/demo/seeds/mssql.sql +32 -0
- package/db-manager/demo/seeds/mysql.sql +32 -0
- package/db-manager/demo/seeds/oracle.sql +43 -0
- package/db-manager/demo/seeds/postgres.sql +32 -0
- package/db-manager/demo/seeds/sqlite3.sql +32 -0
- package/db-manager/demo/sqlite3.env +2 -0
- package/db-manager/metadata-db.js +170 -0
- package/db-manager/public/.gitkeep +1 -0
- package/db-manager/public/css/style.css +1413 -0
- package/db-manager/public/js/app.js +1370 -0
- package/db-manager/routes/api.js +388 -0
- package/db-manager/routes/views.js +61 -0
- package/db-manager/server.js +39 -0
- package/db-manager/utils/build-filter-config.js +18 -0
- package/db-manager/utils/csv-export.js +59 -0
- package/db-manager/utils/export-filename.js +39 -0
- package/db-manager/utils/filter-tables.js +20 -0
- package/db-manager/utils/parse-filters.js +93 -0
- package/db-manager/utils/sort-state.js +35 -0
- package/db-manager/views/.gitkeep +1 -0
- package/db-manager/views/dashboard.ejs +53 -0
- package/db-manager/views/history.ejs +52 -0
- package/db-manager/views/index.ejs +35 -0
- package/db-manager/views/layout.ejs +31 -0
- package/db-manager/views/partials/data-panel.ejs +74 -0
- package/db-manager/views/partials/header.ejs +36 -0
- package/db-manager/views/partials/sidebar.ejs +30 -0
- package/db-manager/views/query.ejs +58 -0
- package/dbmr.schema.json +23 -45
- package/demo/.env.example +1 -0
- package/demo/app.js +3 -1
- package/demo/commons/db.js +11 -0
- package/demo/commons/migrate.js +3 -0
- package/demo/commons/modules.js +18 -0
- package/demo/commons/password.js +36 -0
- package/demo/commons/webhook.js +81 -0
- package/demo/dbmr.schema.json +22 -46
- package/demo/middleware/authenticate.js +14 -0
- package/demo/middleware/hasPermission.js +30 -0
- package/demo/middleware/tenantIsolation.js +17 -0
- package/demo/migrations/20260509170349_create_saas_tables.sql +69 -0
- package/demo/migrations/{20260430155809_create_tables.sql → 20260509170349_create_tables.sql} +11 -25
- package/demo/models/addresses.js +5 -3
- package/demo/models/cart_items.js +5 -3
- package/demo/models/carts.js +5 -3
- package/demo/models/categories.js +5 -3
- package/demo/models/coupons.js +5 -3
- package/demo/models/index.js +43 -0
- package/demo/models/order_items.js +4 -2
- package/demo/models/orders.js +5 -3
- package/demo/models/payments.js +5 -3
- package/demo/models/product_images.js +4 -2
- package/demo/models/product_reviews.js +5 -3
- package/demo/models/product_variants.js +5 -3
- package/demo/models/products.js +5 -3
- package/demo/models/role_permissions.js +17 -0
- package/demo/models/roles.js +17 -0
- package/demo/models/shipments.js +5 -3
- package/demo/models/tenants.js +18 -0
- package/demo/models/users.js +12 -8
- package/demo/models/webhook_logs.js +22 -0
- package/demo/models/webhooks.js +19 -0
- package/demo/models/wishlists.js +4 -2
- package/demo/openapi.json +1744 -616
- package/demo/package-lock.json +24 -24
- package/demo/package.json +9 -0
- package/demo/routes/{addresses.js → addresses/index.js} +1 -1
- package/demo/routes/auth/index.js +55 -0
- package/demo/routes/carts/{cart_items.js → cart_items/index.js} +1 -1
- package/demo/routes/{carts.js → carts/index.js} +1 -1
- package/demo/routes/{categories.js → categories/index.js} +1 -1
- package/demo/routes/{coupons.js → coupons/index.js} +1 -1
- package/demo/routes/index.js +39 -24
- package/demo/routes/{orders.js → orders/index.js} +1 -1
- package/demo/routes/orders/{order_items.js → order_items/index.js} +1 -1
- package/demo/routes/orders/{payments.js → payments/index.js} +1 -1
- package/demo/routes/orders/{shipments.js → shipments/index.js} +1 -1
- package/demo/routes/{products.js → products/index.js} +1 -1
- package/demo/routes/products/{product_images.js → product_images/index.js} +1 -1
- package/demo/routes/products/{product_reviews.js → product_reviews/index.js} +1 -1
- package/demo/routes/products/{product_variants.js → product_variants/index.js} +1 -1
- package/demo/routes/roles/index.js +75 -0
- package/demo/routes/roles/permissions/index.js +47 -0
- package/demo/routes/tenants/index.js +45 -0
- package/demo/routes/users/index.js +45 -0
- package/demo/routes/{wishlists.js → wishlists/index.js} +1 -1
- package/demo/seeds/saas-seed.js +329 -0
- package/docker-compose.yml +61 -0
- package/package.json +120 -113
- package/scripts/demo-create.js +1 -1
- package/skill/SKILL.md +119 -3
- package/src/cli/commands/db-manager.js +134 -0
- package/src/cli/commands/generate.js +112 -43
- package/src/cli/commands/help.js +0 -1
- package/src/cli/diff-engine.js +2 -1
- package/src/cli/generate-model.js +9 -4
- package/src/cli/generate-openapi.js +40 -13
- package/src/cli/generate-route.js +61 -22
- package/src/cli/generate-saas-structure.js +122 -0
- package/src/cli/init/generators.js +42 -30
- package/src/cli/init.js +8 -0
- package/src/cli/main.js +8 -1
- package/src/cli/saas/generate-saas-middleware.js +108 -0
- package/src/cli/saas/generate-saas-migrations.js +480 -0
- package/src/cli/saas/generate-saas-models.js +211 -0
- package/src/cli/saas/generate-saas-openapi.js +419 -0
- package/src/cli/saas/generate-saas-routes.js +435 -0
- package/src/cli/saas/generate-saas-seeds.js +243 -0
- package/src/cli/saas/generate-saas-utils.js +176 -0
- package/src/commons/kafka.js +139 -0
- package/src/commons/model.js +29 -9
- package/src/index.js +2 -0
- package/src/mssql/db.js +41 -3
- package/src/mysql/db.js +3 -0
- package/src/postgres/db.js +6 -0
- package/src/sqlite3/db.js +11 -0
- package/demo/docs/llm.md +0 -197
- package/demo/llms.txt +0 -70
- package/demo/routes/users.js +0 -6
- package/src/cli/commands/generate-llm-docs.js +0 -418
- /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
|
+
);
|
package/demo/migrations/{20260430155809_create_tables.sql → 20260509170349_create_tables.sql}
RENAMED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 (
|
package/demo/models/addresses.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
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: "
|
|
21
|
+
{ created_at: "created_at", modified_at: "modified_at" },
|
|
20
22
|
);
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
export default addresses;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
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: "
|
|
17
|
+
{ created_at: "created_at", modified_at: "modified_at" },
|
|
16
18
|
);
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
export default cart_items;
|
package/demo/models/carts.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
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: "
|
|
15
|
+
{ created_at: "created_at", modified_at: "modified_at" },
|
|
14
16
|
);
|
|
15
17
|
|
|
16
|
-
|
|
18
|
+
export default carts;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
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: "
|
|
19
|
+
{ created_at: "created_at", modified_at: "modified_at" },
|
|
18
20
|
);
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
export default categories;
|
package/demo/models/coupons.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
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: "
|
|
22
|
+
{ created_at: "created_at", modified_at: "modified_at" },
|
|
21
23
|
);
|
|
22
24
|
|
|
23
|
-
|
|
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
|
-
|
|
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
|
-
|
|
23
|
+
export default order_items;
|
package/demo/models/orders.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
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: "
|
|
24
|
+
{ created_at: "created_at", modified_at: "modified_at" },
|
|
23
25
|
);
|
|
24
26
|
|
|
25
|
-
|
|
27
|
+
export default orders;
|
package/demo/models/payments.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
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: "
|
|
20
|
+
{ created_at: "created_at", modified_at: "modified_at" },
|
|
19
21
|
);
|
|
20
22
|
|
|
21
|
-
|
|
23
|
+
export default payments;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
20
|
+
export default product_images;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
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: "
|
|
19
|
+
{ created_at: "created_at", modified_at: "modified_at" },
|
|
18
20
|
);
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
export default product_reviews;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
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: "
|
|
19
|
+
{ created_at: "created_at", modified_at: "modified_at" },
|
|
18
20
|
);
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
export default product_variants;
|
package/demo/models/products.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
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: "
|
|
29
|
+
{ safeDelete: "is_deleted", created_at: "created_at", modified_at: "modified_at" },
|
|
28
30
|
);
|
|
29
31
|
|
|
30
|
-
|
|
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;
|
package/demo/models/shipments.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
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: "
|
|
18
|
+
{ created_at: "created_at", modified_at: "modified_at" },
|
|
17
19
|
);
|
|
18
20
|
|
|
19
|
-
|
|
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;
|
package/demo/models/users.js
CHANGED
|
@@ -1,19 +1,23 @@
|
|
|
1
|
-
|
|
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
|
-
"
|
|
12
|
-
"
|
|
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
|
-
["
|
|
16
|
-
{
|
|
19
|
+
["tenant_id","unique_attribute"],
|
|
20
|
+
{ created_at: "created_at", modified_at: "modified_at" },
|
|
17
21
|
);
|
|
18
22
|
|
|
19
|
-
|
|
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;
|
package/demo/models/wishlists.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
17
|
+
export default wishlists;
|