@bash-app/bash-common 30.281.0 → 30.284.0
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/dist/__tests__/storePrintArtworkUtils.test.d.ts +2 -0
- package/dist/__tests__/storePrintArtworkUtils.test.d.ts.map +1 -0
- package/dist/__tests__/storePrintArtworkUtils.test.js +35 -0
- package/dist/__tests__/storePrintArtworkUtils.test.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/storePrintArtworkUtils.d.ts +22 -0
- package/dist/storePrintArtworkUtils.d.ts.map +1 -0
- package/dist/storePrintArtworkUtils.js +74 -0
- package/dist/storePrintArtworkUtils.js.map +1 -0
- package/dist/storeTypes.d.ts +81 -0
- package/dist/storeTypes.d.ts.map +1 -0
- package/dist/storeTypes.js +20 -0
- package/dist/storeTypes.js.map +1 -0
- package/package.json +1 -1
- package/prisma/schema.prisma +134 -6
- package/src/__tests__/storePrintArtworkUtils.test.ts +53 -0
- package/src/index.ts +2 -0
- package/src/storePrintArtworkUtils.ts +93 -0
- package/src/storeTypes.ts +109 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storePrintArtworkUtils.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/storePrintArtworkUtils.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { isDarkGarmentColor, resolveStorePrintArtwork, resolveStorePrintArtworkPath, } from "../storePrintArtworkUtils.js";
|
|
2
|
+
describe("isDarkGarmentColor", () => {
|
|
3
|
+
it("detects common dark garment names", () => {
|
|
4
|
+
expect(isDarkGarmentColor("Black / M")).toBe(true);
|
|
5
|
+
expect(isDarkGarmentColor("navy")).toBe(true);
|
|
6
|
+
expect(isDarkGarmentColor("charcoal heather")).toBe(true);
|
|
7
|
+
expect(isDarkGarmentColor("White / L")).toBe(false);
|
|
8
|
+
expect(isDarkGarmentColor("Heather grey / M")).toBe(false);
|
|
9
|
+
});
|
|
10
|
+
it("detects dark hex colors", () => {
|
|
11
|
+
expect(isDarkGarmentColor("#000000")).toBe(true);
|
|
12
|
+
expect(isDarkGarmentColor("#ffffff")).toBe(false);
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
describe("resolveStorePrintArtwork", () => {
|
|
16
|
+
it("keeps royal-blue artwork on light garments", () => {
|
|
17
|
+
expect(resolveStorePrintArtwork("BashLogoBig", {
|
|
18
|
+
garmentColor: "White / M",
|
|
19
|
+
})).toBe("BashLogoBig");
|
|
20
|
+
});
|
|
21
|
+
it("routes to white knock-out on dark garments", () => {
|
|
22
|
+
expect(resolveStorePrintArtwork("BashLogoBig", {
|
|
23
|
+
garmentColor: "Black / L",
|
|
24
|
+
})).toBe("BashLogoBigWhite");
|
|
25
|
+
expect(resolveStorePrintArtwork("BashLogoLetters", {
|
|
26
|
+
garmentColor: "Black / One size",
|
|
27
|
+
})).toBe("BashLogoLettersWhite");
|
|
28
|
+
});
|
|
29
|
+
it("returns public paths for resolved artwork", () => {
|
|
30
|
+
expect(resolveStorePrintArtworkPath("BashLogoBig", {
|
|
31
|
+
garmentColor: "Black",
|
|
32
|
+
})).toBe("/bashLogoBigWhite.png");
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=storePrintArtworkUtils.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storePrintArtworkUtils.test.js","sourceRoot":"","sources":["../../src/__tests__/storePrintArtworkUtils.test.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,8BAA8B,CAAC;AAEtC,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CACJ,wBAAwB,CAAC,aAAkC,EAAE;YAC3D,YAAY,EAAE,WAAW;SAC1B,CAAC,CACH,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CACJ,wBAAwB,CAAC,aAAkC,EAAE;YAC3D,YAAY,EAAE,WAAW;SAC1B,CAAC,CACH,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC3B,MAAM,CACJ,wBAAwB,CAAC,iBAAsC,EAAE;YAC/D,YAAY,EAAE,kBAAkB;SACjC,CAAC,CACH,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CACJ,4BAA4B,CAAC,aAAkC,EAAE;YAC/D,YAAY,EAAE,OAAO;SACtB,CAAC,CACH,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ export * from "./competitionValidation.js";
|
|
|
11
11
|
export * from "./groupTicketUtils.js";
|
|
12
12
|
export * from "./utils/groupTicketCartUtils.js";
|
|
13
13
|
export * from "./partnerStoreTypes.js";
|
|
14
|
+
export * from "./storeTypes.js";
|
|
15
|
+
export * from "./storePrintArtworkUtils.js";
|
|
14
16
|
export * from "./bashFeedTypes.js";
|
|
15
17
|
export * from "./membershipDefinitions.js";
|
|
16
18
|
export * from "./onSaleCapabilityRecommendations.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -11,6 +11,8 @@ export * from "./competitionValidation.js";
|
|
|
11
11
|
export * from "./groupTicketUtils.js";
|
|
12
12
|
export * from "./utils/groupTicketCartUtils.js";
|
|
13
13
|
export * from "./partnerStoreTypes.js";
|
|
14
|
+
export * from "./storeTypes.js";
|
|
15
|
+
export * from "./storePrintArtworkUtils.js";
|
|
14
16
|
export * from "./bashFeedTypes.js";
|
|
15
17
|
export * from "./membershipDefinitions.js";
|
|
16
18
|
export * from "./onSaleCapabilityRecommendations.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { StorePrintArtwork } from "@prisma/client";
|
|
2
|
+
/** Royal-blue wordmark → white knock-out for dark garments. */
|
|
3
|
+
export declare const STORE_PRINT_ARTWORK_WHITE_KNOCKOUT: Partial<Record<StorePrintArtwork, StorePrintArtwork>>;
|
|
4
|
+
/** Base (royal blue) artwork for each enum value, including white variants. */
|
|
5
|
+
export declare const STORE_PRINT_ARTWORK_BASE: Partial<Record<StorePrintArtwork, StorePrintArtwork>>;
|
|
6
|
+
/**
|
|
7
|
+
* True when a garment color name/token should use white knock-out print artwork.
|
|
8
|
+
* Accepts labels like "Black / M" or hex codes (#000, #1a1a2e).
|
|
9
|
+
*/
|
|
10
|
+
export declare function isDarkGarmentColor(garmentColor: string | null | undefined): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Pick print artwork for a product SKU, optionally routing to white knock-out
|
|
13
|
+
* when the selected variant/garment color is dark.
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveStorePrintArtwork(printArtwork: StorePrintArtwork | null | undefined, options?: {
|
|
16
|
+
garmentColor?: string | null;
|
|
17
|
+
}): StorePrintArtwork | null;
|
|
18
|
+
/** Public path for resolved artwork (bash-app/public). */
|
|
19
|
+
export declare function resolveStorePrintArtworkPath(printArtwork: StorePrintArtwork | null | undefined, options?: {
|
|
20
|
+
garmentColor?: string | null;
|
|
21
|
+
}): string | null;
|
|
22
|
+
//# sourceMappingURL=storePrintArtworkUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storePrintArtworkUtils.d.ts","sourceRoot":"","sources":["../src/storePrintArtworkUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAIxD,+DAA+D;AAC/D,eAAO,MAAM,kCAAkC,EAAE,OAAO,CACtD,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAI7C,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,wBAAwB,EAAE,OAAO,CAC5C,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAM7C,CAAC;AAeF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAcnF;AAcD;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EAClD,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACzC,iBAAiB,GAAG,IAAI,CAQ1B;AAED,0DAA0D;AAC1D,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EAClD,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACzC,MAAM,GAAG,IAAI,CAIf"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { STORE_PRINT_ARTWORK_PATHS } from "./storeTypes.js";
|
|
2
|
+
/** Royal-blue wordmark → white knock-out for dark garments. */
|
|
3
|
+
export const STORE_PRINT_ARTWORK_WHITE_KNOCKOUT = {
|
|
4
|
+
BashLogoBig: "BashLogoBigWhite",
|
|
5
|
+
BashLogoLetters: "BashLogoLettersWhite",
|
|
6
|
+
};
|
|
7
|
+
/** Base (royal blue) artwork for each enum value, including white variants. */
|
|
8
|
+
export const STORE_PRINT_ARTWORK_BASE = {
|
|
9
|
+
BashLogoBig: "BashLogoBig",
|
|
10
|
+
BashLogoLetters: "BashLogoLetters",
|
|
11
|
+
BashLogoBigWhite: "BashLogoBig",
|
|
12
|
+
BashLogoLettersWhite: "BashLogoLetters",
|
|
13
|
+
};
|
|
14
|
+
const DARK_GARMENT_COLOR_TOKENS = new Set([
|
|
15
|
+
"black",
|
|
16
|
+
"charcoal",
|
|
17
|
+
"navy",
|
|
18
|
+
"dark",
|
|
19
|
+
"midnight",
|
|
20
|
+
"graphite",
|
|
21
|
+
"heather-black",
|
|
22
|
+
"dark-heather",
|
|
23
|
+
"dark-heather-grey",
|
|
24
|
+
"dark-heather-gray",
|
|
25
|
+
]);
|
|
26
|
+
/**
|
|
27
|
+
* True when a garment color name/token should use white knock-out print artwork.
|
|
28
|
+
* Accepts labels like "Black / M" or hex codes (#000, #1a1a2e).
|
|
29
|
+
*/
|
|
30
|
+
export function isDarkGarmentColor(garmentColor) {
|
|
31
|
+
const raw = garmentColor?.trim();
|
|
32
|
+
if (!raw)
|
|
33
|
+
return false;
|
|
34
|
+
const hex = raw.match(/#([0-9a-f]{3}|[0-9a-f]{6})/i)?.[0];
|
|
35
|
+
if (hex) {
|
|
36
|
+
return relativeLuminanceFromHex(hex) < 0.35;
|
|
37
|
+
}
|
|
38
|
+
const normalized = raw.toLowerCase().replace(/[^a-z0-9]+/g, "-");
|
|
39
|
+
for (const token of DARK_GARMENT_COLOR_TOKENS) {
|
|
40
|
+
if (normalized.includes(token))
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
function relativeLuminanceFromHex(hex) {
|
|
46
|
+
const h = hex.replace("#", "");
|
|
47
|
+
const full = h.length === 3 ? h.split("").map((c) => c + c).join("") : h.slice(0, 6);
|
|
48
|
+
const r = parseInt(full.slice(0, 2), 16) / 255;
|
|
49
|
+
const g = parseInt(full.slice(2, 4), 16) / 255;
|
|
50
|
+
const b = parseInt(full.slice(4, 6), 16) / 255;
|
|
51
|
+
const lin = (c) => c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;
|
|
52
|
+
return 0.2126 * lin(r) + 0.7152 * lin(g) + 0.0722 * lin(b);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Pick print artwork for a product SKU, optionally routing to white knock-out
|
|
56
|
+
* when the selected variant/garment color is dark.
|
|
57
|
+
*/
|
|
58
|
+
export function resolveStorePrintArtwork(printArtwork, options) {
|
|
59
|
+
if (!printArtwork)
|
|
60
|
+
return null;
|
|
61
|
+
const base = STORE_PRINT_ARTWORK_BASE[printArtwork] ?? printArtwork;
|
|
62
|
+
if (!options?.garmentColor || !isDarkGarmentColor(options.garmentColor)) {
|
|
63
|
+
return base;
|
|
64
|
+
}
|
|
65
|
+
return STORE_PRINT_ARTWORK_WHITE_KNOCKOUT[base] ?? printArtwork;
|
|
66
|
+
}
|
|
67
|
+
/** Public path for resolved artwork (bash-app/public). */
|
|
68
|
+
export function resolveStorePrintArtworkPath(printArtwork, options) {
|
|
69
|
+
const resolved = resolveStorePrintArtwork(printArtwork, options);
|
|
70
|
+
if (!resolved)
|
|
71
|
+
return null;
|
|
72
|
+
return STORE_PRINT_ARTWORK_PATHS[resolved] ?? null;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=storePrintArtworkUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storePrintArtworkUtils.js","sourceRoot":"","sources":["../src/storePrintArtworkUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { StoreFulfillmentProvider, StorePrintArtwork, StoreProductCategory, StoreProductStatus } from "@prisma/client";
|
|
2
|
+
/** Public catalog row for /store listing and product detail. */
|
|
3
|
+
export type StoreProductVariantPublic = {
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
priceCents: number | null;
|
|
7
|
+
inventory: number;
|
|
8
|
+
sortOrder: number;
|
|
9
|
+
};
|
|
10
|
+
export type StoreProductPublic = {
|
|
11
|
+
id: string;
|
|
12
|
+
slug: string;
|
|
13
|
+
title: string;
|
|
14
|
+
description: string | null;
|
|
15
|
+
images: string[];
|
|
16
|
+
priceCents: number;
|
|
17
|
+
inventory: number;
|
|
18
|
+
category: StoreProductCategory;
|
|
19
|
+
sortOrder: number;
|
|
20
|
+
printArtwork: StorePrintArtwork | null;
|
|
21
|
+
variants: StoreProductVariantPublic[];
|
|
22
|
+
};
|
|
23
|
+
/** Admin CRUD shape (includes fulfillment mapping). */
|
|
24
|
+
export type StoreProductAdmin = StoreProductPublic & {
|
|
25
|
+
status: StoreProductStatus;
|
|
26
|
+
fulfillmentProvider: StoreFulfillmentProvider;
|
|
27
|
+
externalProductId: string | null;
|
|
28
|
+
printArtworkUrl: string | null;
|
|
29
|
+
variants: (StoreProductVariantPublic & {
|
|
30
|
+
externalVariantId: string | null;
|
|
31
|
+
})[];
|
|
32
|
+
};
|
|
33
|
+
export type StoreCheckoutSessionRequest = {
|
|
34
|
+
productSlug: string;
|
|
35
|
+
variantId?: string;
|
|
36
|
+
quantity?: number;
|
|
37
|
+
};
|
|
38
|
+
export type StoreCheckoutSessionResponse = {
|
|
39
|
+
checkoutUrl: string;
|
|
40
|
+
orderId: string;
|
|
41
|
+
};
|
|
42
|
+
export type StoreOrderPublic = {
|
|
43
|
+
id: string;
|
|
44
|
+
status: string;
|
|
45
|
+
fulfillmentStatus: string;
|
|
46
|
+
subtotalCents: number;
|
|
47
|
+
totalCents: number;
|
|
48
|
+
currency: string;
|
|
49
|
+
createdAt: string;
|
|
50
|
+
lines: {
|
|
51
|
+
id: string;
|
|
52
|
+
titleSnapshot: string;
|
|
53
|
+
unitPriceCents: number;
|
|
54
|
+
quantity: number;
|
|
55
|
+
}[];
|
|
56
|
+
};
|
|
57
|
+
/** Brand print artwork paths served from bash-app/public. */
|
|
58
|
+
export declare const STORE_PRINT_ARTWORK_PATHS: Record<StorePrintArtwork, string>;
|
|
59
|
+
export declare const STORE_PRODUCT_STATUS_VALUES: readonly ["Active", "Draft", "Archived"];
|
|
60
|
+
export declare const STORE_FULFILLMENT_PROVIDER_VALUES: readonly ["Platform", "Printify", "Printful"];
|
|
61
|
+
export declare const STORE_PRINT_ARTWORK_VALUES: readonly ["BashLogoBig", "BashLogoLetters", "BashLogoBigWhite", "BashLogoLettersWhite"];
|
|
62
|
+
/** Printful sync product row for admin import picker. */
|
|
63
|
+
export type PrintfulSyncProductSummary = {
|
|
64
|
+
id: number;
|
|
65
|
+
name: string;
|
|
66
|
+
thumbnailUrl: string | null;
|
|
67
|
+
variantCount: number;
|
|
68
|
+
};
|
|
69
|
+
/** Normalized Printful sync product payload for Bash Store admin import. */
|
|
70
|
+
export type PrintfulStoreProductImport = {
|
|
71
|
+
syncProductId: string;
|
|
72
|
+
title: string;
|
|
73
|
+
images: string[];
|
|
74
|
+
priceCents: number;
|
|
75
|
+
variants: {
|
|
76
|
+
label: string;
|
|
77
|
+
externalVariantId: string;
|
|
78
|
+
priceCents: number | null;
|
|
79
|
+
}[];
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=storeTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storeTypes.d.ts","sourceRoot":"","sources":["../src/storeTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Brand print artwork paths served from bash-app/public. */
|
|
2
|
+
export const STORE_PRINT_ARTWORK_PATHS = {
|
|
3
|
+
BashLogoBig: "/bashLogoBig.png",
|
|
4
|
+
BashLogoLetters: "/bashLogoLetters.png",
|
|
5
|
+
BashLogoBigWhite: "/bashLogoBigWhite.png",
|
|
6
|
+
BashLogoLettersWhite: "/bashLogoLettersWhite.png",
|
|
7
|
+
};
|
|
8
|
+
export const STORE_PRODUCT_STATUS_VALUES = ["Active", "Draft", "Archived"];
|
|
9
|
+
export const STORE_FULFILLMENT_PROVIDER_VALUES = [
|
|
10
|
+
"Platform",
|
|
11
|
+
"Printify",
|
|
12
|
+
"Printful",
|
|
13
|
+
];
|
|
14
|
+
export const STORE_PRINT_ARTWORK_VALUES = [
|
|
15
|
+
"BashLogoBig",
|
|
16
|
+
"BashLogoLetters",
|
|
17
|
+
"BashLogoBigWhite",
|
|
18
|
+
"BashLogoLettersWhite",
|
|
19
|
+
];
|
|
20
|
+
//# sourceMappingURL=storeTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storeTypes.js","sourceRoot":"","sources":["../src/storeTypes.ts"],"names":[],"mappings":"AAoEA,6DAA6D;AAC7D,MAAM,CAAC,MAAM,yBAAyB,GAAsC;IAC1E,WAAW,EAAE,kBAAkB;IAC/B,eAAe,EAAE,sBAAsB;IACvC,gBAAgB,EAAE,uBAAuB;IACzC,oBAAoB,EAAE,2BAA2B;CAClD,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAU,CAAC;AACpF,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,UAAU;IACV,UAAU;IACV,UAAU;CACF,CAAC;AACX,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,aAAa;IACb,iBAAiB;IACjB,kBAAkB;IAClB,sBAAsB;CACd,CAAC"}
|
package/package.json
CHANGED
package/prisma/schema.prisma
CHANGED
|
@@ -130,6 +130,7 @@ model BashFeedComment {
|
|
|
130
130
|
parent BashFeedComment? @relation("FeedCommentReplies", fields: [parentId], references: [id], onDelete: Cascade)
|
|
131
131
|
replies BashFeedComment[] @relation("FeedCommentReplies")
|
|
132
132
|
likes BashFeedCommentLike[]
|
|
133
|
+
reports BashFeedReport[]
|
|
133
134
|
|
|
134
135
|
@@index([postId])
|
|
135
136
|
@@index([parentId])
|
|
@@ -169,7 +170,8 @@ model BashFeedRating {
|
|
|
169
170
|
model BashFeedReport {
|
|
170
171
|
id String @id @default(cuid())
|
|
171
172
|
userId String
|
|
172
|
-
postId String
|
|
173
|
+
postId String?
|
|
174
|
+
commentId String?
|
|
173
175
|
reason BashFeedReportReason
|
|
174
176
|
description String? @db.Text
|
|
175
177
|
status ReportStatus @default(Pending)
|
|
@@ -177,11 +179,14 @@ model BashFeedReport {
|
|
|
177
179
|
reviewedAt DateTime?
|
|
178
180
|
createdAt DateTime @default(now())
|
|
179
181
|
|
|
180
|
-
user User
|
|
181
|
-
post BashFeedPost
|
|
182
|
-
|
|
182
|
+
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
183
|
+
post BashFeedPost? @relation(fields: [postId], references: [id], onDelete: Cascade)
|
|
184
|
+
comment BashFeedComment? @relation(fields: [commentId], references: [id], onDelete: Cascade)
|
|
185
|
+
reviewer User? @relation("ReviewedReports", fields: [reviewedBy], references: [id])
|
|
183
186
|
|
|
187
|
+
@@unique([userId, commentId])
|
|
184
188
|
@@index([postId])
|
|
189
|
+
@@index([commentId])
|
|
185
190
|
@@index([status])
|
|
186
191
|
@@index([userId])
|
|
187
192
|
}
|
|
@@ -2026,8 +2031,9 @@ model TicketTier {
|
|
|
2026
2031
|
title String @default("Free")
|
|
2027
2032
|
sortOrder Int?
|
|
2028
2033
|
description String?
|
|
2029
|
-
maximumNumberOfTickets Int
|
|
2030
|
-
|
|
2034
|
+
maximumNumberOfTickets Int?
|
|
2035
|
+
/// @deprecated Legacy duplicate of maximumNumberOfTickets — do not read or write.
|
|
2036
|
+
maximumTicketCount Int?
|
|
2031
2037
|
isDonationTier Boolean?
|
|
2032
2038
|
hidden Boolean?
|
|
2033
2039
|
promoCodes BashEventPromoCode[]
|
|
@@ -3040,6 +3046,7 @@ model User {
|
|
|
3040
3046
|
bashFeedRatings BashFeedRating[]
|
|
3041
3047
|
bashFeedReports BashFeedReport[]
|
|
3042
3048
|
reviewedFeedReports BashFeedReport[] @relation("ReviewedReports")
|
|
3049
|
+
storeOrders StoreOrder[]
|
|
3043
3050
|
bashFeedSaves BashFeedSave[]
|
|
3044
3051
|
bashFeedReposts BashFeedRepost[]
|
|
3045
3052
|
reviewHelpfulVotes ReviewHelpfulVote[]
|
|
@@ -9501,6 +9508,127 @@ enum OrgProductStatus {
|
|
|
9501
9508
|
Archived
|
|
9502
9509
|
}
|
|
9503
9510
|
|
|
9511
|
+
enum StoreProductStatus {
|
|
9512
|
+
Active
|
|
9513
|
+
Draft
|
|
9514
|
+
Archived
|
|
9515
|
+
}
|
|
9516
|
+
|
|
9517
|
+
enum StoreProductCategory {
|
|
9518
|
+
Apparel
|
|
9519
|
+
Accessories
|
|
9520
|
+
Other
|
|
9521
|
+
}
|
|
9522
|
+
|
|
9523
|
+
enum StorePrintArtwork {
|
|
9524
|
+
BashLogoBig
|
|
9525
|
+
BashLogoLetters
|
|
9526
|
+
BashLogoBigWhite
|
|
9527
|
+
BashLogoLettersWhite
|
|
9528
|
+
}
|
|
9529
|
+
|
|
9530
|
+
enum StoreFulfillmentProvider {
|
|
9531
|
+
Platform
|
|
9532
|
+
Printify
|
|
9533
|
+
Printful
|
|
9534
|
+
}
|
|
9535
|
+
|
|
9536
|
+
enum StoreOrderStatus {
|
|
9537
|
+
Pending
|
|
9538
|
+
Paid
|
|
9539
|
+
Fulfilled
|
|
9540
|
+
Failed
|
|
9541
|
+
Canceled
|
|
9542
|
+
}
|
|
9543
|
+
|
|
9544
|
+
enum StoreFulfillmentStatus {
|
|
9545
|
+
Pending
|
|
9546
|
+
Submitted
|
|
9547
|
+
Fulfilled
|
|
9548
|
+
Failed
|
|
9549
|
+
}
|
|
9550
|
+
|
|
9551
|
+
/// Official Bash merch sold on /store (merchant-of-record via Stripe).
|
|
9552
|
+
model StoreProduct {
|
|
9553
|
+
id String @id @default(cuid())
|
|
9554
|
+
slug String @unique
|
|
9555
|
+
title String
|
|
9556
|
+
description String? @db.Text
|
|
9557
|
+
images String[] @default([])
|
|
9558
|
+
priceCents Int
|
|
9559
|
+
inventory Int @default(0)
|
|
9560
|
+
status StoreProductStatus @default(Draft)
|
|
9561
|
+
category StoreProductCategory @default(Apparel)
|
|
9562
|
+
sortOrder Int @default(0)
|
|
9563
|
+
fulfillmentProvider StoreFulfillmentProvider @default(Platform)
|
|
9564
|
+
externalProductId String?
|
|
9565
|
+
printArtwork StorePrintArtwork?
|
|
9566
|
+
printArtworkUrl String?
|
|
9567
|
+
createdAt DateTime @default(now())
|
|
9568
|
+
updatedAt DateTime @updatedAt
|
|
9569
|
+
variants StoreProductVariant[]
|
|
9570
|
+
orderLines StoreOrderLine[]
|
|
9571
|
+
|
|
9572
|
+
@@index([status, sortOrder])
|
|
9573
|
+
}
|
|
9574
|
+
|
|
9575
|
+
model StoreProductVariant {
|
|
9576
|
+
id String @id @default(cuid())
|
|
9577
|
+
productId String
|
|
9578
|
+
label String
|
|
9579
|
+
priceCents Int?
|
|
9580
|
+
inventory Int @default(0)
|
|
9581
|
+
externalVariantId String?
|
|
9582
|
+
sortOrder Int @default(0)
|
|
9583
|
+
product StoreProduct @relation(fields: [productId], references: [id], onDelete: Cascade)
|
|
9584
|
+
|
|
9585
|
+
@@index([productId])
|
|
9586
|
+
}
|
|
9587
|
+
|
|
9588
|
+
model StoreOrder {
|
|
9589
|
+
id String @id @default(cuid())
|
|
9590
|
+
buyerId String
|
|
9591
|
+
status StoreOrderStatus @default(Pending)
|
|
9592
|
+
fulfillmentStatus StoreFulfillmentStatus @default(Pending)
|
|
9593
|
+
subtotalCents Int
|
|
9594
|
+
totalCents Int
|
|
9595
|
+
currency String @default("usd")
|
|
9596
|
+
stripeCheckoutSessionId String? @unique
|
|
9597
|
+
stripePaymentIntentId String?
|
|
9598
|
+
// Shipping address captured from Stripe checkout
|
|
9599
|
+
shippingName String?
|
|
9600
|
+
shippingLine1 String?
|
|
9601
|
+
shippingLine2 String?
|
|
9602
|
+
shippingCity String?
|
|
9603
|
+
shippingState String?
|
|
9604
|
+
shippingPostalCode String?
|
|
9605
|
+
shippingCountry String?
|
|
9606
|
+
createdAt DateTime @default(now())
|
|
9607
|
+
updatedAt DateTime @updatedAt
|
|
9608
|
+
buyer User @relation(fields: [buyerId], references: [id], onDelete: Cascade)
|
|
9609
|
+
lines StoreOrderLine[]
|
|
9610
|
+
|
|
9611
|
+
@@index([buyerId])
|
|
9612
|
+
@@index([status])
|
|
9613
|
+
}
|
|
9614
|
+
|
|
9615
|
+
model StoreOrderLine {
|
|
9616
|
+
id String @id @default(cuid())
|
|
9617
|
+
orderId String
|
|
9618
|
+
productId String?
|
|
9619
|
+
variantId String?
|
|
9620
|
+
titleSnapshot String
|
|
9621
|
+
unitPriceCents Int
|
|
9622
|
+
quantity Int @default(1)
|
|
9623
|
+
fulfillmentProvider StoreFulfillmentProvider
|
|
9624
|
+
externalProductId String?
|
|
9625
|
+
externalVariantId String?
|
|
9626
|
+
order StoreOrder @relation(fields: [orderId], references: [id], onDelete: Cascade)
|
|
9627
|
+
product StoreProduct? @relation(fields: [productId], references: [id], onDelete: SetNull)
|
|
9628
|
+
|
|
9629
|
+
@@index([orderId])
|
|
9630
|
+
}
|
|
9631
|
+
|
|
9504
9632
|
/// Lifecycle of a host's external Stripe nonprofit-pricing application. Recorded
|
|
9505
9633
|
/// for analytics; does NOT gate Bash-side verification or platform-fee waivers.
|
|
9506
9634
|
enum StripeNonprofitPricingStatus {
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { StorePrintArtwork } from "@prisma/client";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
isDarkGarmentColor,
|
|
5
|
+
resolveStorePrintArtwork,
|
|
6
|
+
resolveStorePrintArtworkPath,
|
|
7
|
+
} from "../storePrintArtworkUtils.js";
|
|
8
|
+
|
|
9
|
+
describe("isDarkGarmentColor", () => {
|
|
10
|
+
it("detects common dark garment names", () => {
|
|
11
|
+
expect(isDarkGarmentColor("Black / M")).toBe(true);
|
|
12
|
+
expect(isDarkGarmentColor("navy")).toBe(true);
|
|
13
|
+
expect(isDarkGarmentColor("charcoal heather")).toBe(true);
|
|
14
|
+
expect(isDarkGarmentColor("White / L")).toBe(false);
|
|
15
|
+
expect(isDarkGarmentColor("Heather grey / M")).toBe(false);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it("detects dark hex colors", () => {
|
|
19
|
+
expect(isDarkGarmentColor("#000000")).toBe(true);
|
|
20
|
+
expect(isDarkGarmentColor("#ffffff")).toBe(false);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
describe("resolveStorePrintArtwork", () => {
|
|
25
|
+
it("keeps royal-blue artwork on light garments", () => {
|
|
26
|
+
expect(
|
|
27
|
+
resolveStorePrintArtwork("BashLogoBig" as StorePrintArtwork, {
|
|
28
|
+
garmentColor: "White / M",
|
|
29
|
+
})
|
|
30
|
+
).toBe("BashLogoBig");
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it("routes to white knock-out on dark garments", () => {
|
|
34
|
+
expect(
|
|
35
|
+
resolveStorePrintArtwork("BashLogoBig" as StorePrintArtwork, {
|
|
36
|
+
garmentColor: "Black / L",
|
|
37
|
+
})
|
|
38
|
+
).toBe("BashLogoBigWhite");
|
|
39
|
+
expect(
|
|
40
|
+
resolveStorePrintArtwork("BashLogoLetters" as StorePrintArtwork, {
|
|
41
|
+
garmentColor: "Black / One size",
|
|
42
|
+
})
|
|
43
|
+
).toBe("BashLogoLettersWhite");
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it("returns public paths for resolved artwork", () => {
|
|
47
|
+
expect(
|
|
48
|
+
resolveStorePrintArtworkPath("BashLogoBig" as StorePrintArtwork, {
|
|
49
|
+
garmentColor: "Black",
|
|
50
|
+
})
|
|
51
|
+
).toBe("/bashLogoBigWhite.png");
|
|
52
|
+
});
|
|
53
|
+
});
|
package/src/index.ts
CHANGED
|
@@ -11,6 +11,8 @@ export * from "./competitionValidation.js";
|
|
|
11
11
|
export * from "./groupTicketUtils.js";
|
|
12
12
|
export * from "./utils/groupTicketCartUtils.js";
|
|
13
13
|
export * from "./partnerStoreTypes.js";
|
|
14
|
+
export * from "./storeTypes.js";
|
|
15
|
+
export * from "./storePrintArtworkUtils.js";
|
|
14
16
|
export * from "./bashFeedTypes.js";
|
|
15
17
|
export * from "./membershipDefinitions.js";
|
|
16
18
|
export * from "./onSaleCapabilityRecommendations.js";
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { StorePrintArtwork } from "@prisma/client";
|
|
2
|
+
|
|
3
|
+
import { STORE_PRINT_ARTWORK_PATHS } from "./storeTypes.js";
|
|
4
|
+
|
|
5
|
+
/** Royal-blue wordmark → white knock-out for dark garments. */
|
|
6
|
+
export const STORE_PRINT_ARTWORK_WHITE_KNOCKOUT: Partial<
|
|
7
|
+
Record<StorePrintArtwork, StorePrintArtwork>
|
|
8
|
+
> = {
|
|
9
|
+
BashLogoBig: "BashLogoBigWhite",
|
|
10
|
+
BashLogoLetters: "BashLogoLettersWhite",
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
/** Base (royal blue) artwork for each enum value, including white variants. */
|
|
14
|
+
export const STORE_PRINT_ARTWORK_BASE: Partial<
|
|
15
|
+
Record<StorePrintArtwork, StorePrintArtwork>
|
|
16
|
+
> = {
|
|
17
|
+
BashLogoBig: "BashLogoBig",
|
|
18
|
+
BashLogoLetters: "BashLogoLetters",
|
|
19
|
+
BashLogoBigWhite: "BashLogoBig",
|
|
20
|
+
BashLogoLettersWhite: "BashLogoLetters",
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const DARK_GARMENT_COLOR_TOKENS = new Set([
|
|
24
|
+
"black",
|
|
25
|
+
"charcoal",
|
|
26
|
+
"navy",
|
|
27
|
+
"dark",
|
|
28
|
+
"midnight",
|
|
29
|
+
"graphite",
|
|
30
|
+
"heather-black",
|
|
31
|
+
"dark-heather",
|
|
32
|
+
"dark-heather-grey",
|
|
33
|
+
"dark-heather-gray",
|
|
34
|
+
]);
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* True when a garment color name/token should use white knock-out print artwork.
|
|
38
|
+
* Accepts labels like "Black / M" or hex codes (#000, #1a1a2e).
|
|
39
|
+
*/
|
|
40
|
+
export function isDarkGarmentColor(garmentColor: string | null | undefined): boolean {
|
|
41
|
+
const raw = garmentColor?.trim();
|
|
42
|
+
if (!raw) return false;
|
|
43
|
+
|
|
44
|
+
const hex = raw.match(/#([0-9a-f]{3}|[0-9a-f]{6})/i)?.[0];
|
|
45
|
+
if (hex) {
|
|
46
|
+
return relativeLuminanceFromHex(hex) < 0.35;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const normalized = raw.toLowerCase().replace(/[^a-z0-9]+/g, "-");
|
|
50
|
+
for (const token of DARK_GARMENT_COLOR_TOKENS) {
|
|
51
|
+
if (normalized.includes(token)) return true;
|
|
52
|
+
}
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function relativeLuminanceFromHex(hex: string): number {
|
|
57
|
+
const h = hex.replace("#", "");
|
|
58
|
+
const full =
|
|
59
|
+
h.length === 3 ? h.split("").map((c) => c + c).join("") : h.slice(0, 6);
|
|
60
|
+
const r = parseInt(full.slice(0, 2), 16) / 255;
|
|
61
|
+
const g = parseInt(full.slice(2, 4), 16) / 255;
|
|
62
|
+
const b = parseInt(full.slice(4, 6), 16) / 255;
|
|
63
|
+
const lin = (c: number) =>
|
|
64
|
+
c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;
|
|
65
|
+
return 0.2126 * lin(r) + 0.7152 * lin(g) + 0.0722 * lin(b);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Pick print artwork for a product SKU, optionally routing to white knock-out
|
|
70
|
+
* when the selected variant/garment color is dark.
|
|
71
|
+
*/
|
|
72
|
+
export function resolveStorePrintArtwork(
|
|
73
|
+
printArtwork: StorePrintArtwork | null | undefined,
|
|
74
|
+
options?: { garmentColor?: string | null }
|
|
75
|
+
): StorePrintArtwork | null {
|
|
76
|
+
if (!printArtwork) return null;
|
|
77
|
+
|
|
78
|
+
const base = STORE_PRINT_ARTWORK_BASE[printArtwork] ?? printArtwork;
|
|
79
|
+
if (!options?.garmentColor || !isDarkGarmentColor(options.garmentColor)) {
|
|
80
|
+
return base;
|
|
81
|
+
}
|
|
82
|
+
return STORE_PRINT_ARTWORK_WHITE_KNOCKOUT[base] ?? printArtwork;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/** Public path for resolved artwork (bash-app/public). */
|
|
86
|
+
export function resolveStorePrintArtworkPath(
|
|
87
|
+
printArtwork: StorePrintArtwork | null | undefined,
|
|
88
|
+
options?: { garmentColor?: string | null }
|
|
89
|
+
): string | null {
|
|
90
|
+
const resolved = resolveStorePrintArtwork(printArtwork, options);
|
|
91
|
+
if (!resolved) return null;
|
|
92
|
+
return STORE_PRINT_ARTWORK_PATHS[resolved] ?? null;
|
|
93
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
StoreFulfillmentProvider,
|
|
3
|
+
StorePrintArtwork,
|
|
4
|
+
StoreProductCategory,
|
|
5
|
+
StoreProductStatus,
|
|
6
|
+
} from "@prisma/client";
|
|
7
|
+
|
|
8
|
+
/** Public catalog row for /store listing and product detail. */
|
|
9
|
+
export type StoreProductVariantPublic = {
|
|
10
|
+
id: string;
|
|
11
|
+
label: string;
|
|
12
|
+
priceCents: number | null;
|
|
13
|
+
inventory: number;
|
|
14
|
+
sortOrder: number;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export type StoreProductPublic = {
|
|
18
|
+
id: string;
|
|
19
|
+
slug: string;
|
|
20
|
+
title: string;
|
|
21
|
+
description: string | null;
|
|
22
|
+
images: string[];
|
|
23
|
+
priceCents: number;
|
|
24
|
+
inventory: number;
|
|
25
|
+
category: StoreProductCategory;
|
|
26
|
+
sortOrder: number;
|
|
27
|
+
printArtwork: StorePrintArtwork | null;
|
|
28
|
+
variants: StoreProductVariantPublic[];
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
/** Admin CRUD shape (includes fulfillment mapping). */
|
|
32
|
+
export type StoreProductAdmin = StoreProductPublic & {
|
|
33
|
+
status: StoreProductStatus;
|
|
34
|
+
fulfillmentProvider: StoreFulfillmentProvider;
|
|
35
|
+
externalProductId: string | null;
|
|
36
|
+
printArtworkUrl: string | null;
|
|
37
|
+
variants: (StoreProductVariantPublic & {
|
|
38
|
+
externalVariantId: string | null;
|
|
39
|
+
})[];
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export type StoreCheckoutSessionRequest = {
|
|
43
|
+
productSlug: string;
|
|
44
|
+
variantId?: string;
|
|
45
|
+
quantity?: number;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export type StoreCheckoutSessionResponse = {
|
|
49
|
+
checkoutUrl: string;
|
|
50
|
+
orderId: string;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export type StoreOrderPublic = {
|
|
54
|
+
id: string;
|
|
55
|
+
status: string;
|
|
56
|
+
fulfillmentStatus: string;
|
|
57
|
+
subtotalCents: number;
|
|
58
|
+
totalCents: number;
|
|
59
|
+
currency: string;
|
|
60
|
+
createdAt: string;
|
|
61
|
+
lines: {
|
|
62
|
+
id: string;
|
|
63
|
+
titleSnapshot: string;
|
|
64
|
+
unitPriceCents: number;
|
|
65
|
+
quantity: number;
|
|
66
|
+
}[];
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
/** Brand print artwork paths served from bash-app/public. */
|
|
70
|
+
export const STORE_PRINT_ARTWORK_PATHS: Record<StorePrintArtwork, string> = {
|
|
71
|
+
BashLogoBig: "/bashLogoBig.png",
|
|
72
|
+
BashLogoLetters: "/bashLogoLetters.png",
|
|
73
|
+
BashLogoBigWhite: "/bashLogoBigWhite.png",
|
|
74
|
+
BashLogoLettersWhite: "/bashLogoLettersWhite.png",
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export const STORE_PRODUCT_STATUS_VALUES = ["Active", "Draft", "Archived"] as const;
|
|
78
|
+
export const STORE_FULFILLMENT_PROVIDER_VALUES = [
|
|
79
|
+
"Platform",
|
|
80
|
+
"Printify",
|
|
81
|
+
"Printful",
|
|
82
|
+
] as const;
|
|
83
|
+
export const STORE_PRINT_ARTWORK_VALUES = [
|
|
84
|
+
"BashLogoBig",
|
|
85
|
+
"BashLogoLetters",
|
|
86
|
+
"BashLogoBigWhite",
|
|
87
|
+
"BashLogoLettersWhite",
|
|
88
|
+
] as const;
|
|
89
|
+
|
|
90
|
+
/** Printful sync product row for admin import picker. */
|
|
91
|
+
export type PrintfulSyncProductSummary = {
|
|
92
|
+
id: number;
|
|
93
|
+
name: string;
|
|
94
|
+
thumbnailUrl: string | null;
|
|
95
|
+
variantCount: number;
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
/** Normalized Printful sync product payload for Bash Store admin import. */
|
|
99
|
+
export type PrintfulStoreProductImport = {
|
|
100
|
+
syncProductId: string;
|
|
101
|
+
title: string;
|
|
102
|
+
images: string[];
|
|
103
|
+
priceCents: number;
|
|
104
|
+
variants: {
|
|
105
|
+
label: string;
|
|
106
|
+
externalVariantId: string;
|
|
107
|
+
priceCents: number | null;
|
|
108
|
+
}[];
|
|
109
|
+
};
|