@lodashventure/medusa-brand 1.2.19 → 1.2.23
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/.medusa/server/src/admin/index.js +1191 -556
- package/.medusa/server/src/admin/index.mjs +1165 -530
- package/.medusa/server/src/api/admin/brands/[id]/image/route.js +178 -0
- package/.medusa/server/src/api/admin/brands/[id]/logo/route.js +179 -0
- package/.medusa/server/src/api/admin/brands/[id]/products/route.js +55 -0
- package/.medusa/server/src/api/admin/brands/[id]/route.js +251 -0
- package/.medusa/server/src/api/admin/brands/route.js +276 -0
- package/.medusa/server/src/api/admin/products/[id]/brand/route.js +117 -0
- package/.medusa/server/src/api/middlewares/attach-brand-to-products.js +110 -0
- package/.medusa/server/src/api/middlewares.js +53 -0
- package/.medusa/server/src/api/store/brands/[id]/route.js +31 -0
- package/.medusa/server/src/api/store/brands/route.js +99 -0
- package/.medusa/server/{index.js → src/index.js} +1 -1
- package/.medusa/server/{modules → src/modules}/brand/index.js +1 -1
- package/.medusa/server/src/modules/brand/models/brand.js +40 -0
- package/.medusa/server/{modules → src/modules}/brand/service.js +1 -1
- package/.medusa/server/src/services/gcs-direct-upload.js +93 -0
- package/.medusa/server/src/workflows/upload-brand-image.js +66 -0
- package/package.json +11 -10
- package/.medusa/server/api/admin/brands/[id]/image/route.d.ts +0 -5
- package/.medusa/server/api/admin/brands/[id]/image/route.js +0 -119
- package/.medusa/server/api/admin/brands/[id]/logo/route.d.ts +0 -5
- package/.medusa/server/api/admin/brands/[id]/logo/route.js +0 -119
- package/.medusa/server/api/admin/brands/[id]/products/route.d.ts +0 -2
- package/.medusa/server/api/admin/brands/[id]/products/route.js +0 -52
- package/.medusa/server/api/admin/brands/[id]/route.d.ts +0 -5
- package/.medusa/server/api/admin/brands/[id]/route.js +0 -112
- package/.medusa/server/api/admin/brands/route.d.ts +0 -4
- package/.medusa/server/api/admin/brands/route.js +0 -76
- package/.medusa/server/api/admin/products/[id]/brand/route.d.ts +0 -5
- package/.medusa/server/api/admin/products/[id]/brand/route.js +0 -117
- package/.medusa/server/api/middlewares/attach-brand-to-products.d.ts +0 -2
- package/.medusa/server/api/middlewares/attach-brand-to-products.js +0 -105
- package/.medusa/server/api/middlewares.d.ts +0 -6
- package/.medusa/server/api/middlewares.js +0 -27
- package/.medusa/server/api/store/brands/route.d.ts +0 -2
- package/.medusa/server/api/store/brands/route.js +0 -53
- package/.medusa/server/index.d.ts +0 -1
- package/.medusa/server/modules/brand/index.d.ts +0 -35
- package/.medusa/server/modules/brand/migrations/Migration20251021070648.d.ts +0 -5
- package/.medusa/server/modules/brand/migrations/Migration20251021070648.js +0 -28
- package/.medusa/server/modules/brand/models/brand.d.ts +0 -16
- package/.medusa/server/modules/brand/models/brand.js +0 -43
- package/.medusa/server/modules/brand/service.d.ts +0 -21
- package/.medusa/server/services/gcs-direct-upload.d.ts +0 -8
- package/.medusa/server/services/gcs-direct-upload.js +0 -55
- package/.medusa/server/workflows/upload-brand-image.d.ts +0 -15
- package/.medusa/server/workflows/upload-brand-image.js +0 -57
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.POST = exports.GET = void 0;
|
|
4
|
-
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
-
// GET - List all brands with filters
|
|
6
|
-
const GET = async (req, res) => {
|
|
7
|
-
const brandService = req.scope.resolve("brandCustom");
|
|
8
|
-
const logger = req.scope.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
|
|
9
|
-
try {
|
|
10
|
-
const { is_active, q, limit = 20, offset = 0, } = req.query;
|
|
11
|
-
const filters = {};
|
|
12
|
-
if (is_active !== undefined) {
|
|
13
|
-
filters.is_active = is_active === 'true';
|
|
14
|
-
}
|
|
15
|
-
if (q) {
|
|
16
|
-
filters.$or = [
|
|
17
|
-
{ name: { $ilike: `%${q}%` } },
|
|
18
|
-
{ description: { $ilike: `%${q}%` } },
|
|
19
|
-
];
|
|
20
|
-
}
|
|
21
|
-
const [brands, count] = await Promise.all([
|
|
22
|
-
brandService.listBrands(filters, {
|
|
23
|
-
limit: Number(limit),
|
|
24
|
-
offset: Number(offset),
|
|
25
|
-
order: { created_at: "DESC" },
|
|
26
|
-
}),
|
|
27
|
-
brandService.listBrands(filters).then((result) => result.length)
|
|
28
|
-
]);
|
|
29
|
-
return res.json({
|
|
30
|
-
brands,
|
|
31
|
-
count,
|
|
32
|
-
offset: Number(offset),
|
|
33
|
-
limit: Number(limit),
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
logger.error("Error listing brands:", error);
|
|
38
|
-
return res.status(500).json({ error: "Failed to list brands" });
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
exports.GET = GET;
|
|
42
|
-
// POST - Create a new brand
|
|
43
|
-
const POST = async (req, res) => {
|
|
44
|
-
const brandService = req.scope.resolve("brandCustom");
|
|
45
|
-
const logger = req.scope.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
|
|
46
|
-
try {
|
|
47
|
-
const { name, slug, description, website, is_active = true, metadata, } = req.body;
|
|
48
|
-
if (!name || !slug) {
|
|
49
|
-
return res.status(400).json({
|
|
50
|
-
error: "Name and slug are required"
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
// Check if slug already exists
|
|
54
|
-
const existingBrand = await brandService.listBrands({ slug }).then((result) => result[0]);
|
|
55
|
-
if (existingBrand) {
|
|
56
|
-
return res.status(400).json({
|
|
57
|
-
error: "Brand with this slug already exists"
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
const brand = await brandService.createBrands([{
|
|
61
|
-
name,
|
|
62
|
-
slug,
|
|
63
|
-
description,
|
|
64
|
-
website,
|
|
65
|
-
is_active,
|
|
66
|
-
metadata,
|
|
67
|
-
}]).then((result) => result[0]);
|
|
68
|
-
return res.status(201).json({ brand });
|
|
69
|
-
}
|
|
70
|
-
catch (error) {
|
|
71
|
-
logger.error("Error creating brand:", error);
|
|
72
|
-
return res.status(500).json({ error: "Failed to create brand" });
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
exports.POST = POST;
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2JyYW5kcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxxREFBc0U7QUFHdEUscUNBQXFDO0FBQzlCLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdEIsR0FBa0IsRUFDbEIsR0FBbUIsRUFDbkIsRUFBRTtJQUNGLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBUSxDQUFDO0lBQzdELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRW5FLElBQUksQ0FBQztRQUNILE1BQU0sRUFDSixTQUFTLEVBQ1QsQ0FBQyxFQUNELEtBQUssR0FBRyxFQUFFLEVBQ1YsTUFBTSxHQUFHLENBQUMsR0FDWCxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFFZCxNQUFNLE9BQU8sR0FBUSxFQUFFLENBQUM7UUFFeEIsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDNUIsT0FBTyxDQUFDLFNBQVMsR0FBRyxTQUFTLEtBQUssTUFBTSxDQUFDO1FBQzNDLENBQUM7UUFFRCxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ04sT0FBTyxDQUFDLEdBQUcsR0FBRztnQkFDWixFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzlCLEVBQUUsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRTthQUN0QyxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQ3hDLFlBQVksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFO2dCQUMv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
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { MedusaRequest, MedusaResponse } from "@medusajs/framework/http";
|
|
2
|
-
import { SetBrandRequest } from "../../../../../types";
|
|
3
|
-
export declare const GET: (req: MedusaRequest, res: MedusaResponse) => Promise<MedusaResponse>;
|
|
4
|
-
export declare const POST: (req: MedusaRequest<SetBrandRequest>, res: MedusaResponse) => Promise<MedusaResponse>;
|
|
5
|
-
export declare const DELETE: (req: MedusaRequest, res: MedusaResponse) => Promise<MedusaResponse>;
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DELETE = exports.POST = exports.GET = void 0;
|
|
4
|
-
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
-
// GET - Get brand for a product
|
|
6
|
-
const GET = async (req, res) => {
|
|
7
|
-
const { id } = req.params;
|
|
8
|
-
const brandService = req.scope.resolve("brandCustom");
|
|
9
|
-
const productModuleService = req.scope.resolve(utils_1.Modules.PRODUCT);
|
|
10
|
-
const logger = req.scope.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
|
|
11
|
-
try {
|
|
12
|
-
// Verify product exists
|
|
13
|
-
const product = await productModuleService.retrieveProduct(id);
|
|
14
|
-
if (!product) {
|
|
15
|
-
return res.status(404).json({ error: "Product not found" });
|
|
16
|
-
}
|
|
17
|
-
// Get product-brand association
|
|
18
|
-
const productBrand = await brandService.listProductBrands({
|
|
19
|
-
product_id: id,
|
|
20
|
-
}).then((result) => result[0]);
|
|
21
|
-
if (!productBrand) {
|
|
22
|
-
return res.json({ brand: null });
|
|
23
|
-
}
|
|
24
|
-
// Get brand details
|
|
25
|
-
const brand = await brandService.retrieveBrand(productBrand.brand_id);
|
|
26
|
-
return res.json({ brand });
|
|
27
|
-
}
|
|
28
|
-
catch (error) {
|
|
29
|
-
logger.error(`Error getting brand for product ${id}:`, error);
|
|
30
|
-
return res.status(500).json({ error: "Failed to get product brand" });
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
exports.GET = GET;
|
|
34
|
-
// POST - Assign a brand to a product
|
|
35
|
-
const POST = async (req, res) => {
|
|
36
|
-
const { id } = req.params;
|
|
37
|
-
const { brand_id } = req.body;
|
|
38
|
-
const brandService = req.scope.resolve("brandCustom");
|
|
39
|
-
const productModuleService = req.scope.resolve(utils_1.Modules.PRODUCT);
|
|
40
|
-
const logger = req.scope.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
|
|
41
|
-
try {
|
|
42
|
-
if (!brand_id) {
|
|
43
|
-
return res.status(400).json({ error: "brand_id is required" });
|
|
44
|
-
}
|
|
45
|
-
// Verify product exists
|
|
46
|
-
const product = await productModuleService.retrieveProduct(id);
|
|
47
|
-
if (!product) {
|
|
48
|
-
return res.status(404).json({ error: "Product not found" });
|
|
49
|
-
}
|
|
50
|
-
// Verify brand exists
|
|
51
|
-
const brand = await brandService.retrieveBrand(brand_id);
|
|
52
|
-
if (!brand) {
|
|
53
|
-
return res.status(404).json({ error: "Brand not found" });
|
|
54
|
-
}
|
|
55
|
-
// Check if product already has a brand
|
|
56
|
-
const existingProductBrand = await brandService.listProductBrands({
|
|
57
|
-
product_id: id,
|
|
58
|
-
}).then((result) => result[0]);
|
|
59
|
-
if (existingProductBrand) {
|
|
60
|
-
// Update existing association
|
|
61
|
-
await brandService.updateProductBrands([{
|
|
62
|
-
id: existingProductBrand.id,
|
|
63
|
-
brand_id: brand_id,
|
|
64
|
-
}]);
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
// Create new association
|
|
68
|
-
await brandService.createProductBrands([{
|
|
69
|
-
product_id: id,
|
|
70
|
-
brand_id: brand_id,
|
|
71
|
-
}]);
|
|
72
|
-
}
|
|
73
|
-
return res.json({
|
|
74
|
-
message: "Brand assigned successfully",
|
|
75
|
-
product_id: id,
|
|
76
|
-
brand_id: brand_id,
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
catch (error) {
|
|
80
|
-
logger.error(`Error assigning brand to product ${id}:`, error);
|
|
81
|
-
return res.status(500).json({ error: "Failed to assign brand to product" });
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
exports.POST = POST;
|
|
85
|
-
// DELETE - Remove brand from a product
|
|
86
|
-
const DELETE = async (req, res) => {
|
|
87
|
-
const { id } = req.params;
|
|
88
|
-
const brandService = req.scope.resolve("brandCustom");
|
|
89
|
-
const productModuleService = req.scope.resolve(utils_1.Modules.PRODUCT);
|
|
90
|
-
const logger = req.scope.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
|
|
91
|
-
try {
|
|
92
|
-
// Verify product exists
|
|
93
|
-
const product = await productModuleService.retrieveProduct(id);
|
|
94
|
-
if (!product) {
|
|
95
|
-
return res.status(404).json({ error: "Product not found" });
|
|
96
|
-
}
|
|
97
|
-
// Get product-brand association
|
|
98
|
-
const productBrand = await brandService.listProductBrands({
|
|
99
|
-
product_id: id,
|
|
100
|
-
}).then((result) => result[0]);
|
|
101
|
-
if (!productBrand) {
|
|
102
|
-
return res.status(404).json({ error: "Product has no brand assigned" });
|
|
103
|
-
}
|
|
104
|
-
// Delete the association
|
|
105
|
-
await brandService.deleteProductBrands([productBrand.id]);
|
|
106
|
-
return res.json({
|
|
107
|
-
message: "Brand removed from product successfully",
|
|
108
|
-
product_id: id,
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
catch (error) {
|
|
112
|
-
logger.error(`Error removing brand from product ${id}:`, error);
|
|
113
|
-
return res.status(500).json({ error: "Failed to remove brand from product" });
|
|
114
|
-
}
|
|
115
|
-
};
|
|
116
|
-
exports.DELETE = DELETE;
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Byb2R1Y3RzL1tpZF0vYnJhbmQvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEscURBQStFO0FBSS9FLGdDQUFnQztBQUN6QixNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQWtCLEVBQ2xCLEdBQW1CLEVBQ25CLEVBQUU7SUFDRixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUMxQixNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQVEsQ0FBQztJQUM3RCxNQUFNLG9CQUFvQixHQUEwQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkYsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFbkUsSUFBSSxDQUFDO1FBQ0gsd0JBQXdCO1FBQ3hCLE1BQU0sT0FBTyxHQUFHLE1BQU0sb0JBQW9CLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFFRCxnQ0FBZ0M7UUFDaEMsTUFBTSxZQUFZLEdBQUcsTUFBTSxZQUFZLENBQUMsaUJBQWlCLENBQUM7WUFDeEQsVUFBVSxFQUFFLEVBQUU7U0FDZixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUv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
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.attachBrandToProducts = attachBrandToProducts;
|
|
4
|
-
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
-
// Middleware to attach brand information to product responses
|
|
6
|
-
async function attachBrandToProducts(req, res, next) {
|
|
7
|
-
// Store original json method
|
|
8
|
-
const originalJson = res.json.bind(res);
|
|
9
|
-
// Override json method to inject brand data
|
|
10
|
-
res.json = function (data) {
|
|
11
|
-
const brandService = req.scope.resolve("brandCustom");
|
|
12
|
-
const logger = req.scope.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
|
|
13
|
-
// Process asynchronously and then call original json
|
|
14
|
-
(async () => {
|
|
15
|
-
try {
|
|
16
|
-
// Handle single product response (admin and store)
|
|
17
|
-
if (data?.product?.id) {
|
|
18
|
-
try {
|
|
19
|
-
// Get product-brand association
|
|
20
|
-
const productBrand = await brandService.listProductBrands({
|
|
21
|
-
product_id: data.product.id,
|
|
22
|
-
}).then((result) => result[0]);
|
|
23
|
-
if (productBrand) {
|
|
24
|
-
// Get brand details
|
|
25
|
-
const brand = await brandService.retrieveBrand(productBrand.brand_id);
|
|
26
|
-
data.product.brand = brand;
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
data.product.brand = null;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
catch (error) {
|
|
33
|
-
logger.error(`Error attaching brand to product ${data.product.id}:`, error);
|
|
34
|
-
data.product.brand = null;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
// Handle multiple products response
|
|
38
|
-
if (data?.products && Array.isArray(data.products)) {
|
|
39
|
-
const productIds = data.products.map((p) => p.id);
|
|
40
|
-
try {
|
|
41
|
-
// Get all product-brand associations for these products
|
|
42
|
-
const productBrands = await brandService.listProductBrands({
|
|
43
|
-
product_id: { $in: productIds },
|
|
44
|
-
});
|
|
45
|
-
// Create a map for quick lookup
|
|
46
|
-
const brandMap = new Map();
|
|
47
|
-
const productBrandMap = new Map();
|
|
48
|
-
// Map product brands for quick lookup
|
|
49
|
-
productBrands.forEach((pb) => {
|
|
50
|
-
productBrandMap.set(pb.product_id, pb.brand_id);
|
|
51
|
-
});
|
|
52
|
-
// Fetch all unique brand IDs
|
|
53
|
-
const brandIds = [...new Set(productBrands.map((pb) => pb.brand_id))];
|
|
54
|
-
if (brandIds.length > 0) {
|
|
55
|
-
// Fetch all brands at once
|
|
56
|
-
const brands = await Promise.all(brandIds.map((id) => brandService.retrieveBrand(id).catch(() => null)));
|
|
57
|
-
// Map brands by ID
|
|
58
|
-
brands.forEach((brand) => {
|
|
59
|
-
if (brand) {
|
|
60
|
-
brandMap.set(brand.id, brand);
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
// Attach brands to products
|
|
64
|
-
data.products = data.products.map((product) => {
|
|
65
|
-
const brandId = productBrandMap.get(product.id);
|
|
66
|
-
if (brandId && brandMap.has(brandId)) {
|
|
67
|
-
product.brand = brandMap.get(brandId);
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
product.brand = null;
|
|
71
|
-
}
|
|
72
|
-
return product;
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
// No brands found, set all to null
|
|
77
|
-
data.products = data.products.map((product) => {
|
|
78
|
-
product.brand = null;
|
|
79
|
-
return product;
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
catch (error) {
|
|
84
|
-
logger.error("Error attaching brands to products:", error);
|
|
85
|
-
// On error, set all brands to null
|
|
86
|
-
data.products = data.products.map((product) => {
|
|
87
|
-
product.brand = null;
|
|
88
|
-
return product;
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
catch (error) {
|
|
94
|
-
// Silently fail and continue without brand data
|
|
95
|
-
console.error("Brand middleware error:", error);
|
|
96
|
-
}
|
|
97
|
-
// Call original json method with potentially modified data
|
|
98
|
-
originalJson(data);
|
|
99
|
-
})();
|
|
100
|
-
// Return the response object synchronously
|
|
101
|
-
return res;
|
|
102
|
-
};
|
|
103
|
-
next();
|
|
104
|
-
}
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoLWJyYW5kLXRvLXByb2R1Y3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwaS9taWRkbGV3YXJlcy9hdHRhY2gtYnJhbmQtdG8tcHJvZHVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSxzREFnSEM7QUFuSEQscURBQXNFO0FBRXRFLDhEQUE4RDtBQUN2RCxLQUFLLFVBQVUscUJBQXFCLENBQ3pDLEdBQWtCLEVBQ2xCLEdBQW1CLEVBQ25CLElBQXdCO0lBRXhCLDZCQUE2QjtJQUM3QixNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV4Qyw0Q0FBNEM7SUFDNUMsR0FBRyxDQUFDLElBQUksR0FBRyxVQUFTLElBQVM7UUFDM0IsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFRLENBQUM7UUFDN0QsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkUscURBQXFEO1FBQ3JELENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDVixJQUFJLENBQUM7Z0JBQ0gsbURBQW1EO2dCQUNuRCxJQUFJLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7b0JBQ3RCLElBQUksQ0FBQzt3QkFDSCxnQ0FBZ0M7d0JBQ2hDLE1BQU0sWUFBWSxHQUFHLE1BQU0sWUFBWSxDQUFDLGlCQUFpQixDQUFDOzRCQUN4RCxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO3lCQUM1QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBYSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFFdEMsSUFBSSxZQUFZLEVBQUUsQ0FBQzs0QkFDakIsb0JBQW9COzRCQUNwQixN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
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.config = void 0;
|
|
4
|
-
const attach_brand_to_products_1 = require("./middlewares/attach-brand-to-products");
|
|
5
|
-
exports.config = [
|
|
6
|
-
{
|
|
7
|
-
method: ["GET"],
|
|
8
|
-
matcher: "/admin/products",
|
|
9
|
-
middlewares: [attach_brand_to_products_1.attachBrandToProducts],
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
method: ["GET"],
|
|
13
|
-
matcher: "/admin/products/:id",
|
|
14
|
-
middlewares: [attach_brand_to_products_1.attachBrandToProducts],
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
method: ["GET"],
|
|
18
|
-
matcher: "/store/products",
|
|
19
|
-
middlewares: [attach_brand_to_products_1.attachBrandToProducts],
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
method: ["GET"],
|
|
23
|
-
matcher: "/store/products/:id",
|
|
24
|
-
middlewares: [attach_brand_to_products_1.attachBrandToProducts],
|
|
25
|
-
},
|
|
26
|
-
];
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFGQUErRTtBQUVsRSxRQUFBLE1BQU0sR0FBRztJQUNwQjtRQUNFLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNmLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsV0FBVyxFQUFFLENBQUMsZ0RBQXFCLENBQUM7S0FDckM7SUFDRDtRQUNFLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNmLE9BQU8sRUFBRSxxQkFBcUI7UUFDOUIsV0FBVyxFQUFFLENBQUMsZ0RBQXFCLENBQUM7S0FDckM7SUFDRDtRQUNFLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNmLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsV0FBVyxFQUFFLENBQUMsZ0RBQXFCLENBQUM7S0FDckM7SUFDRDtRQUNFLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNmLE9BQU8sRUFBRSxxQkFBcUI7UUFDOUIsV0FBVyxFQUFFLENBQUMsZ0RBQXFCLENBQUM7S0FDckM7Q0FDRixDQUFDIn0=
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GET = void 0;
|
|
4
|
-
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
-
// GET - List all active brands for store
|
|
6
|
-
const GET = async (req, res) => {
|
|
7
|
-
const brandService = req.scope.resolve("brandCustom");
|
|
8
|
-
const logger = req.scope.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
|
|
9
|
-
try {
|
|
10
|
-
const { q, limit = 20, offset = 0, order = "name" } = req.query;
|
|
11
|
-
const filters = {
|
|
12
|
-
is_active: true, // Only show active brands in store
|
|
13
|
-
};
|
|
14
|
-
if (q) {
|
|
15
|
-
filters.$or = [
|
|
16
|
-
{ name: { $ilike: `%${q}%` } },
|
|
17
|
-
{ description: { $ilike: `%${q}%` } },
|
|
18
|
-
];
|
|
19
|
-
}
|
|
20
|
-
const [brands, count] = await Promise.all([
|
|
21
|
-
brandService.listBrands(filters, {
|
|
22
|
-
limit: Number(limit),
|
|
23
|
-
offset: Number(offset),
|
|
24
|
-
order,
|
|
25
|
-
select: [
|
|
26
|
-
"id",
|
|
27
|
-
"name",
|
|
28
|
-
"slug",
|
|
29
|
-
"description",
|
|
30
|
-
"image",
|
|
31
|
-
"logo",
|
|
32
|
-
"website",
|
|
33
|
-
"metadata",
|
|
34
|
-
],
|
|
35
|
-
}),
|
|
36
|
-
brandService.listBrands(filters).then((result) => result.length),
|
|
37
|
-
]);
|
|
38
|
-
res.setHeader("Content-Type", "application/json; charset=utf-8");
|
|
39
|
-
return res.json({
|
|
40
|
-
brands,
|
|
41
|
-
count,
|
|
42
|
-
offset: Number(offset),
|
|
43
|
-
limit: Number(limit),
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
logger.error("Error listing brands for store:", error);
|
|
48
|
-
res.setHeader("Content-Type", "application/json; charset=utf-8");
|
|
49
|
-
return res.status(500).json({ error: "Failed to list brands" });
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
exports.GET = GET;
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2JyYW5kcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBc0U7QUFFdEUseUNBQXlDO0FBQ2xDLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFrQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNuRSxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQVEsQ0FBQztJQUM3RCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVuRSxJQUFJLENBQUM7UUFDSCxNQUFNLEVBQUUsQ0FBQyxFQUFFLEtBQUssR0FBRyxFQUFFLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUVoRSxNQUFNLE9BQU8sR0FBUTtZQUNuQixTQUFTLEVBQUUsSUFBSSxFQUFFLG1DQUFtQztTQUNyRCxDQUFDO1FBRUYsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNOLE9BQU8sQ0FBQyxHQUFHLEdBQUc7Z0JBQ1osRUFBRSxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUM5QixFQUFFLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUU7YUFDdEMsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUN4QyxZQUFZLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRTtnQkFDL0IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQ3BCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUN0QixLQUFLO2dCQUNMLE1BQU0sRUFBRTtvQkFDTixJQUFJO29CQUNKLE1BQU07b0JBQ04sTUFBTTtvQkFDTixhQUFhO29CQUNiLE9BQU87b0JBQ1AsTUFBTTtvQkFDTixTQUFTO29CQUNULFVBQVU7aUJBQ1g7YUFDRixDQUFDO1lBQ0YsWUFBWSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7U0FDakUsQ0FBQyxDQUFDO1FBRUgsR0FBRyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsaUNBQWlDLENBQUMsQ0FBQztRQUNqRSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDZCxNQUFNO1lBQ04sS0FBSztZQUNMLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ3RCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ3JCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RCxHQUFHLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxpQ0FBaUMsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7QUFDSCxDQUFDLENBQUM7QUFqRFcsUUFBQSxHQUFHLE9BaURkIn0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { BRAND_MODULE } from "./modules/brand";
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import BrandModuleService from "./service";
|
|
2
|
-
export declare const BRAND_MODULE = "brandCustom";
|
|
3
|
-
declare const _default: import("@medusajs/types").ModuleExports<typeof BrandModuleService> & {
|
|
4
|
-
linkable: {
|
|
5
|
-
readonly brand: {
|
|
6
|
-
id: {
|
|
7
|
-
serviceName: "brandCustom";
|
|
8
|
-
field: "brand";
|
|
9
|
-
linkable: "brand_id";
|
|
10
|
-
primaryKey: "id";
|
|
11
|
-
};
|
|
12
|
-
toJSON: () => {
|
|
13
|
-
serviceName: "brandCustom";
|
|
14
|
-
field: "brand";
|
|
15
|
-
linkable: "brand_id";
|
|
16
|
-
primaryKey: "id";
|
|
17
|
-
};
|
|
18
|
-
};
|
|
19
|
-
readonly productBrand: {
|
|
20
|
-
id: {
|
|
21
|
-
serviceName: "brandCustom";
|
|
22
|
-
field: "productBrand";
|
|
23
|
-
linkable: "product_brand_id";
|
|
24
|
-
primaryKey: "id";
|
|
25
|
-
};
|
|
26
|
-
toJSON: () => {
|
|
27
|
-
serviceName: "brandCustom";
|
|
28
|
-
field: "productBrand";
|
|
29
|
-
linkable: "product_brand_id";
|
|
30
|
-
primaryKey: "id";
|
|
31
|
-
};
|
|
32
|
-
};
|
|
33
|
-
};
|
|
34
|
-
};
|
|
35
|
-
export default _default;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Migration20251021070648 = void 0;
|
|
4
|
-
const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
|
|
5
|
-
class Migration20251021070648 extends migrations_1.Migration {
|
|
6
|
-
async up() {
|
|
7
|
-
this.addSql(`alter table if exists "product_brand" drop constraint if exists "product_brand_product_id_brand_id_unique";`);
|
|
8
|
-
this.addSql(`alter table if exists "brand" drop constraint if exists "brand_slug_unique";`);
|
|
9
|
-
this.addSql(`alter table if exists "brand" drop constraint if exists "brand_name_unique";`);
|
|
10
|
-
this.addSql(`create table if not exists "brand" ("id" text not null, "name" text not null, "slug" text not null, "description" text null, "image" text null, "logo" text null, "website" text null, "is_active" boolean not null default true, "metadata" jsonb null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "brand_pkey" primary key ("id"));`);
|
|
11
|
-
this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_brand_name_unique" ON "brand" (name) WHERE deleted_at IS NULL;`);
|
|
12
|
-
this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_brand_slug_unique" ON "brand" (slug) WHERE deleted_at IS NULL;`);
|
|
13
|
-
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_brand_deleted_at" ON "brand" (deleted_at) WHERE deleted_at IS NULL;`);
|
|
14
|
-
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_brand_slug" ON "brand" (slug) WHERE deleted_at IS NULL;`);
|
|
15
|
-
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_brand_is_active" ON "brand" (is_active) WHERE deleted_at IS NULL;`);
|
|
16
|
-
this.addSql(`create table if not exists "product_brand" ("id" text not null, "product_id" text not null, "brand_id" text not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "product_brand_pkey" primary key ("id"));`);
|
|
17
|
-
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_product_brand_deleted_at" ON "product_brand" (deleted_at) WHERE deleted_at IS NULL;`);
|
|
18
|
-
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_product_brand_product_id" ON "product_brand" (product_id) WHERE deleted_at IS NULL;`);
|
|
19
|
-
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_product_brand_brand_id" ON "product_brand" (brand_id) WHERE deleted_at IS NULL;`);
|
|
20
|
-
this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_product_brand_product_id_brand_id_unique" ON "product_brand" (product_id, brand_id) WHERE deleted_at IS NULL;`);
|
|
21
|
-
}
|
|
22
|
-
async down() {
|
|
23
|
-
this.addSql(`drop table if exists "brand" cascade;`);
|
|
24
|
-
this.addSql(`drop table if exists "product_brand" cascade;`);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
exports.Migration20251021070648 = Migration20251021070648;
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTEwMjEwNzA2NDguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9icmFuZC9taWdyYXRpb25zL01pZ3JhdGlvbjIwMjUxMDIxMDcwNjQ4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlFQUFxRTtBQUVyRSxNQUFhLHVCQUF3QixTQUFRLHNCQUFTO0lBRTNDLEtBQUssQ0FBQyxFQUFFO1FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyw2R0FBNkcsQ0FBQyxDQUFDO1FBQzNILElBQUksQ0FBQyxNQUFNLENBQUMsOEVBQThFLENBQUMsQ0FBQztRQUM1RixJQUFJLENBQUMsTUFBTSxDQUFDLDhFQUE4RSxDQUFDLENBQUM7UUFDNUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyx3YUFBd2EsQ0FBQyxDQUFDO1FBQ3RiLElBQUksQ0FBQyxNQUFNLENBQUMsdUdBQXVHLENBQUMsQ0FBQztRQUNySCxJQUFJLENBQUMsTUFBTSxDQUFDLHVHQUF1RyxDQUFDLENBQUM7UUFDckgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxR0FBcUcsQ0FBQyxDQUFDO1FBQ25ILElBQUksQ0FBQyxNQUFNLENBQUMseUZBQXlGLENBQUMsQ0FBQztRQUN2RyxJQUFJLENBQUMsTUFBTSxDQUFDLG1HQUFtRyxDQUFDLENBQUM7UUFFakgsSUFBSSxDQUFDLE1BQU0sQ0FBQyw2U0FBNlMsQ0FBQyxDQUFDO1FBQzNULElBQUksQ0FBQyxNQUFNLENBQUMscUhBQXFILENBQUMsQ0FBQztRQUNuSSxJQUFJLENBQUMsTUFBTSxDQUFDLHFIQUFxSCxDQUFDLENBQUM7UUFDbkksSUFBSSxDQUFDLE1BQU0sQ0FBQyxpSEFBaUgsQ0FBQyxDQUFDO1FBQy9ILElBQUksQ0FBQyxNQUFNLENBQUMsc0pBQXNKLENBQUMsQ0FBQztJQUN0SyxDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1FBRXJELElBQUksQ0FBQyxNQUFNLENBQUMsK0NBQStDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBRUY7QUExQkQsMERBMEJDIn0=
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export declare const Brand: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
2
|
-
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
3
|
-
name: import("@medusajs/framework/utils").TextProperty;
|
|
4
|
-
slug: import("@medusajs/framework/utils").TextProperty;
|
|
5
|
-
description: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
6
|
-
image: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
7
|
-
logo: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
8
|
-
website: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
9
|
-
is_active: import("@medusajs/framework/utils").BooleanProperty;
|
|
10
|
-
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
11
|
-
}>, "brand">;
|
|
12
|
-
export declare const ProductBrand: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
13
|
-
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
14
|
-
product_id: import("@medusajs/framework/utils").TextProperty;
|
|
15
|
-
brand_id: import("@medusajs/framework/utils").TextProperty;
|
|
16
|
-
}>, "product_brand">;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ProductBrand = exports.Brand = void 0;
|
|
4
|
-
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
-
exports.Brand = utils_1.model
|
|
6
|
-
.define("brand", {
|
|
7
|
-
id: utils_1.model.id().primaryKey(),
|
|
8
|
-
name: utils_1.model.text().unique(),
|
|
9
|
-
slug: utils_1.model.text().unique(),
|
|
10
|
-
description: utils_1.model.text().nullable(),
|
|
11
|
-
image: utils_1.model.text().nullable(),
|
|
12
|
-
logo: utils_1.model.text().nullable(),
|
|
13
|
-
website: utils_1.model.text().nullable(),
|
|
14
|
-
is_active: utils_1.model.boolean().default(true),
|
|
15
|
-
metadata: utils_1.model.json().nullable(),
|
|
16
|
-
})
|
|
17
|
-
.indexes([
|
|
18
|
-
{
|
|
19
|
-
on: ["slug"],
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
on: ["is_active"],
|
|
23
|
-
},
|
|
24
|
-
]);
|
|
25
|
-
exports.ProductBrand = utils_1.model
|
|
26
|
-
.define("product_brand", {
|
|
27
|
-
id: utils_1.model.id().primaryKey(),
|
|
28
|
-
product_id: utils_1.model.text(),
|
|
29
|
-
brand_id: utils_1.model.text(),
|
|
30
|
-
})
|
|
31
|
-
.indexes([
|
|
32
|
-
{
|
|
33
|
-
on: ["product_id"],
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
on: ["brand_id"],
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
on: ["product_id", "brand_id"],
|
|
40
|
-
unique: true,
|
|
41
|
-
},
|
|
42
|
-
]);
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9icmFuZC9tb2RlbHMvYnJhbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQWtEO0FBRXJDLFFBQUEsS0FBSyxHQUFHLGFBQUs7S0FDdkIsTUFBTSxDQUFDLE9BQU8sRUFBRTtJQUNmLEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQzNCLElBQUksRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFO0lBQzNCLElBQUksRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFO0lBQzNCLFdBQVcsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3BDLEtBQUssRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzlCLElBQUksRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzdCLE9BQU8sRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2hDLFNBQVMsRUFBRSxhQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJQUN4QyxRQUFRLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUNsQyxDQUFDO0tBQ0QsT0FBTyxDQUFDO0lBQ1A7UUFDRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUM7S0FDYjtJQUNEO1FBQ0UsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDO0tBQ2xCO0NBQ0YsQ0FBQyxDQUFDO0FBRVEsUUFBQSxZQUFZLEdBQUcsYUFBSztLQUM5QixNQUFNLENBQUMsZUFBZSxFQUFFO0lBQ3ZCLEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQzNCLFVBQVUsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQ3hCLFFBQVEsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0NBQ3ZCLENBQUM7S0FDRCxPQUFPLENBQUM7SUFDUDtRQUNFLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQztLQUNuQjtJQUNEO1FBQ0UsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDO0tBQ2pCO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDO1FBQzlCLE1BQU0sRUFBRSxJQUFJO0tBQ2I7Q0FDRixDQUFDLENBQUMifQ==
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
declare const BrandModuleService_base: import("@medusajs/framework/utils").MedusaServiceReturnType<import("@medusajs/framework/utils").ModelConfigurationsToConfigTemplate<{
|
|
2
|
-
readonly Brand: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
3
|
-
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
4
|
-
name: import("@medusajs/framework/utils").TextProperty;
|
|
5
|
-
slug: import("@medusajs/framework/utils").TextProperty;
|
|
6
|
-
description: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
7
|
-
image: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
8
|
-
logo: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
9
|
-
website: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
10
|
-
is_active: import("@medusajs/framework/utils").BooleanProperty;
|
|
11
|
-
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
12
|
-
}>, "brand">;
|
|
13
|
-
readonly ProductBrand: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
14
|
-
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
15
|
-
product_id: import("@medusajs/framework/utils").TextProperty;
|
|
16
|
-
brand_id: import("@medusajs/framework/utils").TextProperty;
|
|
17
|
-
}>, "product_brand">;
|
|
18
|
-
}>>;
|
|
19
|
-
export default class BrandModuleService extends BrandModuleService_base {
|
|
20
|
-
}
|
|
21
|
-
export {};
|