@lodashventure/medusa-brand 1.1.11 → 1.1.13
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/api/admin/brands/[id]/image/route.js +119 -0
- package/.medusa/server/api/admin/brands/[id]/logo/route.js +119 -0
- package/.medusa/server/api/admin/brands/[id]/products/route.js +52 -0
- package/.medusa/server/api/admin/brands/[id]/route.js +112 -0
- package/.medusa/server/api/admin/brands/route.js +76 -0
- package/.medusa/server/api/admin/products/[id]/brand/route.js +117 -0
- package/{dist → .medusa/server}/api/middlewares/attach-brand-to-products.js +1 -0
- package/{dist → .medusa/server}/api/middlewares.js +1 -0
- package/.medusa/server/api/store/brands/route.js +53 -0
- package/{dist → .medusa/server}/index.js +1 -0
- package/{dist → .medusa/server}/modules/brand/index.js +1 -0
- package/{dist → .medusa/server}/modules/brand/migrations/Migration20251021070648.js +1 -0
- package/.medusa/server/modules/brand/models/brand.js +43 -0
- package/.medusa/server/modules/brand/service.js +11 -0
- package/.medusa/server/services/gcs-direct-upload.js +55 -0
- package/.medusa/server/src/admin/index.js +972 -0
- package/.medusa/server/src/admin/index.mjs +971 -0
- package/.medusa/server/workflows/upload-brand-image.js +57 -0
- package/package.json +14 -13
- package/dist/admin/components/brand-form.d.ts +0 -19
- package/dist/admin/components/brand-form.js +0 -182
- package/dist/admin/components/brand-image-uploader.d.ts +0 -14
- package/dist/admin/components/brand-image-uploader.js +0 -217
- package/dist/admin/lib/sdk.d.ts +0 -1
- package/dist/admin/lib/sdk.js +0 -14
- package/dist/admin/routes/brands/page.d.ts +0 -4
- package/dist/admin/routes/brands/page.js +0 -253
- package/dist/admin/widgets/product-brand-widget.d.ts +0 -8
- package/dist/admin/widgets/product-brand-widget.js +0 -207
- package/dist/api/admin/brands/[id]/image/route.js +0 -118
- package/dist/api/admin/brands/[id]/logo/route.js +0 -118
- package/dist/api/admin/brands/[id]/products/route.js +0 -51
- package/dist/api/admin/brands/[id]/route.js +0 -111
- package/dist/api/admin/brands/route.js +0 -75
- package/dist/api/admin/products/[id]/brand/route.js +0 -116
- package/dist/api/store/brands/route.js +0 -50
- package/dist/modules/brand/models/brand.js +0 -42
- package/dist/modules/brand/service.js +0 -10
- package/dist/services/gcs-direct-upload.js +0 -54
- package/dist/workflows/upload-brand-image.js +0 -56
- /package/{dist → .medusa/server}/api/admin/brands/[id]/image/route.d.ts +0 -0
- /package/{dist → .medusa/server}/api/admin/brands/[id]/logo/route.d.ts +0 -0
- /package/{dist → .medusa/server}/api/admin/brands/[id]/products/route.d.ts +0 -0
- /package/{dist → .medusa/server}/api/admin/brands/[id]/route.d.ts +0 -0
- /package/{dist → .medusa/server}/api/admin/brands/route.d.ts +0 -0
- /package/{dist → .medusa/server}/api/admin/products/[id]/brand/route.d.ts +0 -0
- /package/{dist → .medusa/server}/api/middlewares/attach-brand-to-products.d.ts +0 -0
- /package/{dist → .medusa/server}/api/middlewares.d.ts +0 -0
- /package/{dist → .medusa/server}/api/store/brands/route.d.ts +0 -0
- /package/{dist → .medusa/server}/index.d.ts +0 -0
- /package/{dist → .medusa/server}/modules/brand/index.d.ts +0 -0
- /package/{dist → .medusa/server}/modules/brand/migrations/Migration20251021070648.d.ts +0 -0
- /package/{dist → .medusa/server}/modules/brand/models/brand.d.ts +0 -0
- /package/{dist → .medusa/server}/modules/brand/service.d.ts +0 -0
- /package/{dist → .medusa/server}/services/gcs-direct-upload.d.ts +0 -0
- /package/{dist → .medusa/server}/workflows/upload-brand-image.d.ts +0 -0
|
@@ -102,3 +102,4 @@ async function attachBrandToProducts(req, res, next) {
|
|
|
102
102
|
};
|
|
103
103
|
next();
|
|
104
104
|
}
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoLWJyYW5kLXRvLXByb2R1Y3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwaS9taWRkbGV3YXJlcy9hdHRhY2gtYnJhbmQtdG8tcHJvZHVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSxzREFnSEM7QUFuSEQscURBQXNFO0FBRXRFLDhEQUE4RDtBQUN2RCxLQUFLLFVBQVUscUJBQXFCLENBQ3pDLEdBQWtCLEVBQ2xCLEdBQW1CLEVBQ25CLElBQXdCO0lBRXhCLDZCQUE2QjtJQUM3QixNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV4Qyw0Q0FBNEM7SUFDNUMsR0FBRyxDQUFDLElBQUksR0FBRyxVQUFTLElBQVM7UUFDM0IsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFRLENBQUM7UUFDN0QsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkUscURBQXFEO1FBQ3JELENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDVixJQUFJLENBQUM7Z0JBQ0gsbURBQW1EO2dCQUNuRCxJQUFJLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7b0JBQ3RCLElBQUksQ0FBQzt3QkFDSCxnQ0FBZ0M7d0JBQ2hDLE1BQU0sWUFBWSxHQUFHLE1BQU0sWUFBWSxDQUFDLGlCQUFpQixDQUFDOzRCQUN4RCxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO3lCQUM1QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBYSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFFdEMsSUFBSSxZQUFZLEVBQUUsQ0FBQzs0QkFDakIsb0JBQW9COzRCQUNwQixNQUFNLEtBQUssR0FBRyxNQUFNLFlBQVksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzRCQUN0RSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7d0JBQzdCLENBQUM7NkJBQU0sQ0FBQzs0QkFDTixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7d0JBQzVCLENBQUM7b0JBQ0gsQ0FBQztvQkFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO3dCQUNmLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7d0JBQzVFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztvQkFDNUIsQ0FBQztnQkFDSCxDQUFDO2dCQUVELG9DQUFvQztnQkFDcEMsSUFBSSxJQUFJLEVBQUUsUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7b0JBQ25ELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBRXZELElBQUksQ0FBQzt3QkFDSCx3REFBd0Q7d0JBQ3hELE1BQU0sYUFBYSxHQUFHLE1BQU0sWUFBWSxDQUFDLGlCQUFpQixDQUFDOzRCQUN6RCxVQUFVLEVBQUUsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO3lCQUNoQyxDQUFDLENBQUM7d0JBRUgsZ0NBQWdDO3dCQUNoQyxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO3dCQUMzQixNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO3dCQUVsQyxzQ0FBc0M7d0JBQ3RDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFPLEVBQUUsRUFBRTs0QkFDaEMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQzt3QkFDbEQsQ0FBQyxDQUFDLENBQUM7d0JBRUgsNkJBQTZCO3dCQUM3QixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFFM0UsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDOzRCQUN4QiwyQkFBMkI7NEJBQzNCLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDOUIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDL0UsQ0FBQzs0QkFFRixtQkFBbUI7NEJBQ25CLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtnQ0FDNUIsSUFBSSxLQUFLLEVBQUUsQ0FBQztvQ0FDVixRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0NBQ2hDLENBQUM7NEJBQ0gsQ0FBQyxDQUFDLENBQUM7NEJBRUgsNEJBQTRCOzRCQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUU7Z0NBQ2pELE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dDQUNoRCxJQUFJLE9BQU8sSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7b0NBQ3JDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQ0FDeEMsQ0FBQztxQ0FBTSxDQUFDO29DQUNOLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dDQUN2QixDQUFDO2dDQUNELE9BQU8sT0FBTyxDQUFDOzRCQUNqQixDQUFDLENBQUMsQ0FBQzt3QkFDTCxDQUFDOzZCQUFNLENBQUM7NEJBQ04sbUNBQW1DOzRCQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUU7Z0NBQ2pELE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dDQUNyQixPQUFPLE9BQU8sQ0FBQzs0QkFDakIsQ0FBQyxDQUFDLENBQUM7d0JBQ0wsQ0FBQztvQkFDSCxDQUFDO29CQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7d0JBQ2YsTUFBTSxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsRUFBRSxLQUFLLENBQUMsQ0FBQzt3QkFDM0QsbUNBQW1DO3dCQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUU7NEJBQ2pELE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDOzRCQUNyQixPQUFPLE9BQU8sQ0FBQzt3QkFDakIsQ0FBQyxDQUFDLENBQUM7b0JBQ0wsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsZ0RBQWdEO2dCQUNoRCxPQUFPLENBQUMsS0FBSyxDQUFDLHlCQUF5QixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xELENBQUM7WUFFRCwyREFBMkQ7WUFDM0QsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFTCwyQ0FBMkM7UUFDM0MsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLENBQUM7SUFFRixJQUFJLEVBQUUsQ0FBQztBQUNULENBQUMifQ==
|
|
@@ -24,3 +24,4 @@ exports.config = [
|
|
|
24
24
|
middlewares: [attach_brand_to_products_1.attachBrandToProducts],
|
|
25
25
|
},
|
|
26
26
|
];
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFGQUErRTtBQUVsRSxRQUFBLE1BQU0sR0FBRztJQUNwQjtRQUNFLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNmLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsV0FBVyxFQUFFLENBQUMsZ0RBQXFCLENBQUM7S0FDckM7SUFDRDtRQUNFLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNmLE9BQU8sRUFBRSxxQkFBcUI7UUFDOUIsV0FBVyxFQUFFLENBQUMsZ0RBQXFCLENBQUM7S0FDckM7SUFDRDtRQUNFLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNmLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsV0FBVyxFQUFFLENBQUMsZ0RBQXFCLENBQUM7S0FDckM7SUFDRDtRQUNFLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNmLE9BQU8sRUFBRSxxQkFBcUI7UUFDOUIsV0FBVyxFQUFFLENBQUMsZ0RBQXFCLENBQUM7S0FDckM7Q0FDRixDQUFDIn0=
|
|
@@ -0,0 +1,53 @@
|
|
|
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=
|
|
@@ -4,3 +4,4 @@ exports.BRAND_MODULE = void 0;
|
|
|
4
4
|
// Export the module name for use in medusa-config
|
|
5
5
|
var brand_1 = require("./modules/brand");
|
|
6
6
|
Object.defineProperty(exports, "BRAND_MODULE", { enumerable: true, get: function () { return brand_1.BRAND_MODULE; } });
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBQWtEO0FBQ2xELHlDQUErQztBQUF0QyxxR0FBQSxZQUFZLE9BQUEifQ==
|
|
@@ -10,3 +10,4 @@ exports.BRAND_MODULE = "brandCustom";
|
|
|
10
10
|
exports.default = (0, utils_1.Module)(exports.BRAND_MODULE, {
|
|
11
11
|
service: service_1.default,
|
|
12
12
|
});
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9icmFuZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxxREFBbUQ7QUFDbkQsd0RBQTJDO0FBRTlCLFFBQUEsWUFBWSxHQUFHLGFBQWEsQ0FBQztBQUUxQyxrQkFBZSxJQUFBLGNBQU0sRUFBQyxvQkFBWSxFQUFFO0lBQ2xDLE9BQU8sRUFBRSxpQkFBa0I7Q0FDNUIsQ0FBQyxDQUFDIn0=
|
|
@@ -25,3 +25,4 @@ class Migration20251021070648 extends migrations_1.Migration {
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
exports.Migration20251021070648 = Migration20251021070648;
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTEwMjEwNzA2NDguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9icmFuZC9taWdyYXRpb25zL01pZ3JhdGlvbjIwMjUxMDIxMDcwNjQ4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlFQUFxRTtBQUVyRSxNQUFhLHVCQUF3QixTQUFRLHNCQUFTO0lBRTNDLEtBQUssQ0FBQyxFQUFFO1FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyw2R0FBNkcsQ0FBQyxDQUFDO1FBQzNILElBQUksQ0FBQyxNQUFNLENBQUMsOEVBQThFLENBQUMsQ0FBQztRQUM1RixJQUFJLENBQUMsTUFBTSxDQUFDLDhFQUE4RSxDQUFDLENBQUM7UUFDNUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyx3YUFBd2EsQ0FBQyxDQUFDO1FBQ3RiLElBQUksQ0FBQyxNQUFNLENBQUMsdUdBQXVHLENBQUMsQ0FBQztRQUNySCxJQUFJLENBQUMsTUFBTSxDQUFDLHVHQUF1RyxDQUFDLENBQUM7UUFDckgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxR0FBcUcsQ0FBQyxDQUFDO1FBQ25ILElBQUksQ0FBQyxNQUFNLENBQUMseUZBQXlGLENBQUMsQ0FBQztRQUN2RyxJQUFJLENBQUMsTUFBTSxDQUFDLG1HQUFtRyxDQUFDLENBQUM7UUFFakgsSUFBSSxDQUFDLE1BQU0sQ0FBQyw2U0FBNlMsQ0FBQyxDQUFDO1FBQzNULElBQUksQ0FBQyxNQUFNLENBQUMscUhBQXFILENBQUMsQ0FBQztRQUNuSSxJQUFJLENBQUMsTUFBTSxDQUFDLHFIQUFxSCxDQUFDLENBQUM7UUFDbkksSUFBSSxDQUFDLE1BQU0sQ0FBQyxpSEFBaUgsQ0FBQyxDQUFDO1FBQy9ILElBQUksQ0FBQyxNQUFNLENBQUMsc0pBQXNKLENBQUMsQ0FBQztJQUN0SyxDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1FBRXJELElBQUksQ0FBQyxNQUFNLENBQUMsK0NBQStDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBRUY7QUExQkQsMERBMEJDIn0=
|
|
@@ -0,0 +1,43 @@
|
|
|
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==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
4
|
+
const brand_1 = require("./models/brand");
|
|
5
|
+
class BrandModuleService extends (0, utils_1.MedusaService)({
|
|
6
|
+
Brand: brand_1.Brand,
|
|
7
|
+
ProductBrand: brand_1.ProductBrand,
|
|
8
|
+
}) {
|
|
9
|
+
}
|
|
10
|
+
exports.default = BrandModuleService;
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2JyYW5kL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxREFBMEQ7QUFDMUQsMENBQXFEO0FBRXJELE1BQXFCLGtCQUFtQixTQUFRLElBQUEscUJBQWEsRUFBQztJQUM1RCxLQUFLLEVBQUwsYUFBSztJQUNMLFlBQVksRUFBWixvQkFBWTtDQUNiLENBQUM7Q0FBRztBQUhMLHFDQUdLIn0=
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GcsDirectUploadService = void 0;
|
|
4
|
+
const storage_1 = require("@google-cloud/storage");
|
|
5
|
+
class GcsDirectUploadService {
|
|
6
|
+
storage;
|
|
7
|
+
bucketName;
|
|
8
|
+
baseUrl;
|
|
9
|
+
constructor() {
|
|
10
|
+
// Initialize GCS client with credentials from env
|
|
11
|
+
this.storage = new storage_1.Storage({
|
|
12
|
+
credentials: {
|
|
13
|
+
client_email: process.env.CLIENT_EMAIL,
|
|
14
|
+
private_key: process.env.PRIVATE_KEY.replace(/\\n/g, '\n'),
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
this.bucketName = process.env.BUCKET_NAME || 'sangaroon';
|
|
18
|
+
this.baseUrl = process.env.GCP_STORAGE_BASE_PUBLIC_URL || 'https://storage.googleapis.com';
|
|
19
|
+
}
|
|
20
|
+
async uploadFile(filename, buffer, mimeType) {
|
|
21
|
+
try {
|
|
22
|
+
const bucket = this.storage.bucket(this.bucketName);
|
|
23
|
+
const file = bucket.file(filename);
|
|
24
|
+
await file.save(buffer, {
|
|
25
|
+
metadata: {
|
|
26
|
+
contentType: mimeType,
|
|
27
|
+
},
|
|
28
|
+
public: true,
|
|
29
|
+
resumable: false,
|
|
30
|
+
});
|
|
31
|
+
// Return the public URL
|
|
32
|
+
return `${this.baseUrl}/${this.bucketName}/${filename}`;
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
console.error('Error uploading to GCS:', error);
|
|
36
|
+
throw new Error(`Failed to upload file to GCS: ${error.message}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async deleteFile(filename) {
|
|
40
|
+
try {
|
|
41
|
+
const bucket = this.storage.bucket(this.bucketName);
|
|
42
|
+
const file = bucket.file(filename);
|
|
43
|
+
const [exists] = await file.exists();
|
|
44
|
+
if (exists) {
|
|
45
|
+
await file.delete();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
console.error('Error deleting from GCS:', error);
|
|
50
|
+
// Don't throw on delete errors
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.GcsDirectUploadService = GcsDirectUploadService;
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2NzLWRpcmVjdC11cGxvYWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZ2NzLWRpcmVjdC11cGxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQWdEO0FBRWhELE1BQWEsc0JBQXNCO0lBQ3pCLE9BQU8sQ0FBVTtJQUNqQixVQUFVLENBQVM7SUFDbkIsT0FBTyxDQUFTO0lBRXhCO1FBQ0Usa0RBQWtEO1FBQ2xELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxpQkFBTyxDQUFDO1lBQ3pCLFdBQVcsRUFBRTtnQkFDWCxZQUFZLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFhO2dCQUN2QyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFZLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7YUFDNUQ7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBQztRQUN6RCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLElBQUksZ0NBQWdDLENBQUM7SUFDN0YsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsUUFBZ0I7UUFDakUsSUFBSSxDQUFDO1lBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3BELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFbkMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDdEIsUUFBUSxFQUFFO29CQUNSLFdBQVcsRUFBRSxRQUFRO2lCQUN0QjtnQkFDRCxNQUFNLEVBQUUsSUFBSTtnQkFDWixTQUFTLEVBQUUsS0FBSzthQUNqQixDQUFDLENBQUM7WUFFSCx3QkFBd0I7WUFDeEIsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUMxRCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDcEUsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQWdCO1FBQy9CLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNwRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRW5DLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNyQyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3RCLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDakQsK0JBQStCO1FBQ2pDLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFyREQsd0RBcURDIn0=
|