@thinkerchain/flipper-entities 2.3.0 → 2.4.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.
Files changed (33) hide show
  1. package/dist/index.d.ts +5 -3
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +8 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/seller-snapshot.d.ts +25 -0
  6. package/dist/seller-snapshot.d.ts.map +1 -0
  7. package/dist/seller-snapshot.js +93 -0
  8. package/dist/seller-snapshot.js.map +1 -0
  9. package/dist/types/banned-seller.types.d.ts +6 -0
  10. package/dist/types/banned-seller.types.d.ts.map +1 -1
  11. package/dist/types/engine.types.d.ts +2 -0
  12. package/dist/types/engine.types.d.ts.map +1 -1
  13. package/dist/types/item-filter.types.d.ts +13 -1
  14. package/dist/types/item-filter.types.d.ts.map +1 -1
  15. package/dist/types/item.types.d.ts +2 -0
  16. package/dist/types/item.types.d.ts.map +1 -1
  17. package/dist/types/product.types.d.ts +15 -0
  18. package/dist/types/product.types.d.ts.map +1 -1
  19. package/dist/types/scrape.types.d.ts +2 -0
  20. package/dist/types/scrape.types.d.ts.map +1 -1
  21. package/dist/types/search.types.d.ts +1 -0
  22. package/dist/types/search.types.d.ts.map +1 -1
  23. package/dist/types/seller-snapshot.types.d.ts +37 -0
  24. package/dist/types/seller-snapshot.types.d.ts.map +1 -0
  25. package/dist/types/seller-snapshot.types.js +3 -0
  26. package/dist/types/seller-snapshot.types.js.map +1 -0
  27. package/dist/types/subscription.types.d.ts +14 -1
  28. package/dist/types/subscription.types.d.ts.map +1 -1
  29. package/dist/types/usage.types.d.ts +1 -0
  30. package/dist/types/usage.types.d.ts.map +1 -1
  31. package/dist/types/user-channel.types.d.ts +3 -0
  32. package/dist/types/user-channel.types.d.ts.map +1 -1
  33. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -2,7 +2,9 @@ export type { UserEntity, UserWithRelations } from './types/user.types';
2
2
  export type { ItemEntity, ItemWithSearch } from './types/item.types';
3
3
  export type { ScrapedItem, SearchWithItems } from './types/scrape.types';
4
4
  export type { ItemFilterKey, InvalidFilterReason, ItemCheckStatus, CheckItemsRequest, } from './types/item-check.types';
5
- export type { ItemFilterResult, ItemFilterContext, } from './types/item-filter.types';
5
+ export type { ItemFilterResult, ItemFilterContext, BannedSellerMatch, } from './types/item-filter.types';
6
+ export type { SellerIdentityProperty, SellerIdentity, FacebookSellerV1, SellerSnapshotV1, SellerSnapshotJSONB, } from './types/seller-snapshot.types';
7
+ export { SELLER_SNAPSHOT_SOURCE_FACEBOOK, SELLER_SNAPSHOT_VERSION, createSellerSnapshot, parseSellerSnapshot, toSellerIdentities, toSellerMatchKey, } from './seller-snapshot';
6
8
  export type { UserItemEntity, RichNoteJSONB } from './types/user-item.types';
7
9
  export type { BannedSellerEntity } from './types/banned-seller.types';
8
10
  export type { SearchEntity, SearchWithUser } from './types/search.types';
@@ -10,8 +12,8 @@ export type { EngineSearchRequest, EngineEnv, EngineChildInput, EngineScrapeInpu
10
12
  export type { ChannelEntity, TelegramChannelEntity, UserChannelEntity, } from './types/user-channel.types';
11
13
  export type { CoreEntity, DefaultValueEntity, StringMatchAlgorithm, StringMatcherType, DefaultItemFilterEntity, MarketPlacePropEntity, FacebookMarketPlacePropEntity, EngineEntity, EngineOptions, OrchestratorOptions, ProxyOptions, } from './types/core-options.types';
12
14
  export type { OptionEntity } from './types/option.types';
13
- export type { ProductKind, ProductFeature, ProductSearchProfileEntity, ProductChannelProfileEntity, ProductEntity, } from './types/product.types';
14
- export type { SubscriptionStatus, SubscriptionSource, SubscriptionProfileKind, SubscriptionSearchProfileEntity, SubscriptionChannelProfileEntity, SubscriptionProfileSnapshot, SubscriptionSnapshot, SubscriptionEntity, SubscriptionWithProduct, } from './types/subscription.types';
15
+ export type { ProductKind, ProductFeature, ProductSearchProfileEntity, ProductChannelProfileEntity, ProductBannedSellerProfileEntity, ProductEntity, } from './types/product.types';
16
+ export type { SubscriptionStatus, SubscriptionSource, SubscriptionProfileKind, SubscriptionSearchProfileEntity, SubscriptionChannelProfileEntity, SubscriptionBannedSellerProfileEntity, SubscriptionProfileSnapshot, SubscriptionSnapshot, SubscriptionEntity, SubscriptionWithProduct, } from './types/subscription.types';
15
17
  export type { BillingValueJSONB } from './types/billing-options.types';
16
18
  export type { UsageProfileMetric, UsageMetric, SubscriptionUsageSummary, } from './types/usage.types';
17
19
  export type { LocationJSONB, MarketPlacePropJSONB, ItemFilterImage, ItemFilterLink, ItemFilterLocation, ItemFilterName, ItemFilterPrice, ItemFilterYear, ItemFilterDescription, ItemFilterRating, ItemFilterScam, ItemFilterJSONB, CoreValueJSONB, } from './types/search-jsonb.types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAExE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAErE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEzE,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7E,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEzE,YAAY,EACV,mBAAmB,EACnB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,aAAa,EACb,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EACV,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,6BAA6B,EAC7B,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,YAAY,GACb,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,YAAY,EACV,WAAW,EACX,cAAc,EACd,0BAA0B,EAC1B,2BAA2B,EAC3B,aAAa,GACd,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,+BAA+B,EAC/B,gCAAgC,EAChC,2BAA2B,EAC3B,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAExE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAErE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEzE,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,sBAAsB,EACtB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,+BAA+B,EAC/B,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7E,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEzE,YAAY,EACV,mBAAmB,EACnB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,aAAa,EACb,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EACV,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,6BAA6B,EAC7B,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,YAAY,GACb,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,YAAY,EACV,WAAW,EACX,cAAc,EACd,0BAA0B,EAC1B,2BAA2B,EAC3B,gCAAgC,EAChC,aAAa,GACd,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,+BAA+B,EAC/B,gCAAgC,EAChC,qCAAqC,EACrC,2BAA2B,EAC3B,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,4BAA4B,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toSellerMatchKey = exports.toSellerIdentities = exports.parseSellerSnapshot = exports.createSellerSnapshot = exports.SELLER_SNAPSHOT_VERSION = exports.SELLER_SNAPSHOT_SOURCE_FACEBOOK = void 0;
4
+ var seller_snapshot_1 = require("./seller-snapshot");
5
+ Object.defineProperty(exports, "SELLER_SNAPSHOT_SOURCE_FACEBOOK", { enumerable: true, get: function () { return seller_snapshot_1.SELLER_SNAPSHOT_SOURCE_FACEBOOK; } });
6
+ Object.defineProperty(exports, "SELLER_SNAPSHOT_VERSION", { enumerable: true, get: function () { return seller_snapshot_1.SELLER_SNAPSHOT_VERSION; } });
7
+ Object.defineProperty(exports, "createSellerSnapshot", { enumerable: true, get: function () { return seller_snapshot_1.createSellerSnapshot; } });
8
+ Object.defineProperty(exports, "parseSellerSnapshot", { enumerable: true, get: function () { return seller_snapshot_1.parseSellerSnapshot; } });
9
+ Object.defineProperty(exports, "toSellerIdentities", { enumerable: true, get: function () { return seller_snapshot_1.toSellerIdentities; } });
10
+ Object.defineProperty(exports, "toSellerMatchKey", { enumerable: true, get: function () { return seller_snapshot_1.toSellerMatchKey; } });
3
11
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AA2BA,qDAO2B;AANzB,kIAAA,+BAA+B,OAAA;AAC/B,0HAAA,uBAAuB,OAAA;AACvB,uHAAA,oBAAoB,OAAA;AACpB,sHAAA,mBAAmB,OAAA;AACnB,qHAAA,kBAAkB,OAAA;AAClB,mHAAA,gBAAgB,OAAA"}
@@ -0,0 +1,25 @@
1
+ import type { SellerIdentity, SellerSnapshotJSONB } from './types/seller-snapshot.types';
2
+ export declare const SELLER_SNAPSHOT_SOURCE_FACEBOOK = "facebook";
3
+ export declare const SELLER_SNAPSHOT_VERSION = 1;
4
+ /**
5
+ * Bungkus objek seller mentah jadi snapshot berversi.
6
+ * Null kalau FB tidak mengirim objek (kadang null/string).
7
+ * ponytail: vetur ini menulis v1; tambahkan cabang kalau v2 muncul.
8
+ */
9
+ export declare function createSellerSnapshot(source: string, seller: unknown): SellerSnapshotJSONB | null;
10
+ /**
11
+ * Baca snapshot dari DB/IPC. Null kalau bentuknya tidak dikenal (mis. versi
12
+ * lebih baru) — pemanggil fail-open, bukan throw.
13
+ */
14
+ export declare function parseSellerSnapshot(value: unknown): SellerSnapshotJSONB | null;
15
+ /**
16
+ * Nilai identitas seller untuk matching ban. Nilai duplikat (FB sering mengisi
17
+ * `id` = `user_id`) dibuang, property pertama yang menang.
18
+ */
19
+ export declare function toSellerIdentities(snapshot: SellerSnapshotJSONB | null | undefined): SellerIdentity[];
20
+ /**
21
+ * Key pencocokan ban, format sama dengan `bannedSellerKeys` lama:
22
+ * `${marketplace huruf kecil}:${value}`.
23
+ */
24
+ export declare function toSellerMatchKey(marketplace: string, value: string): string;
25
+ //# sourceMappingURL=seller-snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seller-snapshot.d.ts","sourceRoot":"","sources":["../src/seller-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACpB,MAAM,+BAA+B,CAAC;AAEvC,eAAO,MAAM,+BAA+B,aAAa,CAAC;AAC1D,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,mBAAmB,GAAG,IAAI,CAS5B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,GACb,mBAAmB,GAAG,IAAI,CAc5B;AAWD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAC/C,cAAc,EAAE,CAuBlB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3E"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SELLER_SNAPSHOT_VERSION = exports.SELLER_SNAPSHOT_SOURCE_FACEBOOK = void 0;
4
+ exports.createSellerSnapshot = createSellerSnapshot;
5
+ exports.parseSellerSnapshot = parseSellerSnapshot;
6
+ exports.toSellerIdentities = toSellerIdentities;
7
+ exports.toSellerMatchKey = toSellerMatchKey;
8
+ exports.SELLER_SNAPSHOT_SOURCE_FACEBOOK = 'facebook';
9
+ exports.SELLER_SNAPSHOT_VERSION = 1;
10
+ /**
11
+ * Bungkus objek seller mentah jadi snapshot berversi.
12
+ * Null kalau FB tidak mengirim objek (kadang null/string).
13
+ * ponytail: vetur ini menulis v1; tambahkan cabang kalau v2 muncul.
14
+ */
15
+ function createSellerSnapshot(source, seller) {
16
+ if (!seller || typeof seller !== 'object' || Array.isArray(seller)) {
17
+ return null;
18
+ }
19
+ return {
20
+ source,
21
+ version: exports.SELLER_SNAPSHOT_VERSION,
22
+ data: seller,
23
+ };
24
+ }
25
+ /**
26
+ * Baca snapshot dari DB/IPC. Null kalau bentuknya tidak dikenal (mis. versi
27
+ * lebih baru) — pemanggil fail-open, bukan throw.
28
+ */
29
+ function parseSellerSnapshot(value) {
30
+ if (!value || typeof value !== 'object' || Array.isArray(value))
31
+ return null;
32
+ const snapshot = value;
33
+ if (snapshot.version !== exports.SELLER_SNAPSHOT_VERSION)
34
+ return null;
35
+ if (typeof snapshot.source !== 'string' || snapshot.source.length === 0) {
36
+ return null;
37
+ }
38
+ const data = snapshot.data;
39
+ if (!data || typeof data !== 'object' || Array.isArray(data))
40
+ return null;
41
+ return {
42
+ source: snapshot.source,
43
+ version: exports.SELLER_SNAPSHOT_VERSION,
44
+ data: data,
45
+ };
46
+ }
47
+ function toIdentityValue(raw) {
48
+ if (typeof raw === 'string') {
49
+ const trimmed = raw.trim();
50
+ return trimmed.length > 0 ? trimmed : null;
51
+ }
52
+ if (typeof raw === 'number' && Number.isFinite(raw))
53
+ return String(raw);
54
+ return null;
55
+ }
56
+ /**
57
+ * Nilai identitas seller untuk matching ban. Nilai duplikat (FB sering mengisi
58
+ * `id` = `user_id`) dibuang, property pertama yang menang.
59
+ */
60
+ function toSellerIdentities(snapshot) {
61
+ const data = snapshot?.data;
62
+ if (!data)
63
+ return [];
64
+ const profile = data.marketplace_user_profile;
65
+ const candidates = [
66
+ ['id', data.id],
67
+ ['user_id', data.user_id],
68
+ [
69
+ 'marketplace_user_profile.id',
70
+ profile && typeof profile === 'object' && !Array.isArray(profile)
71
+ ? profile.id
72
+ : null,
73
+ ],
74
+ ];
75
+ const identities = [];
76
+ const seen = new Set();
77
+ for (const [property, raw] of candidates) {
78
+ const value = toIdentityValue(raw);
79
+ if (!value || seen.has(value))
80
+ continue;
81
+ seen.add(value);
82
+ identities.push({ property, value });
83
+ }
84
+ return identities;
85
+ }
86
+ /**
87
+ * Key pencocokan ban, format sama dengan `bannedSellerKeys` lama:
88
+ * `${marketplace huruf kecil}:${value}`.
89
+ */
90
+ function toSellerMatchKey(marketplace, value) {
91
+ return `${marketplace.toLowerCase()}:${value}`;
92
+ }
93
+ //# sourceMappingURL=seller-snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seller-snapshot.js","sourceRoot":"","sources":["../src/seller-snapshot.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { SellerSnapshotJSONB } from './seller-snapshot.types';
1
2
  /** Representasi tabel `BannedSeller`. */
2
3
  export type BannedSellerEntity = {
3
4
  id: number;
@@ -5,6 +6,11 @@ export type BannedSellerEntity = {
5
6
  marketplace: string;
6
7
  sellerKey: string;
7
8
  sellerName: string | null;
9
+ sellerSnapshot?: SellerSnapshotJSONB | null;
10
+ subscriptionId?: number | null;
11
+ subscriptionProfileId?: number | null;
12
+ isSubscriptionActive?: boolean;
13
+ subscriptionName?: string | null;
8
14
  deleted: boolean;
9
15
  createdAt: string;
10
16
  createdBy: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"banned-seller.types.d.ts","sourceRoot":"","sources":["../../src/types/banned-seller.types.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC"}
1
+ {"version":3,"file":"banned-seller.types.d.ts","sourceRoot":"","sources":["../../src/types/banned-seller.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,yCAAyC;AACzC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { CoreEntity, ProxyOptions } from './core-options.types';
2
2
  import type { SearchWithItems } from './scrape.types';
3
3
  import type { SearchWithUser } from './search.types';
4
+ import type { SellerSnapshotJSONB } from './seller-snapshot.types';
4
5
  /** Payload RMQ `engine.search`: orchestrator core -> engine. Search saja, tanpa item. */
5
6
  export type EngineSearchRequest = {
6
7
  option: CoreEntity;
@@ -59,6 +60,7 @@ export type ScrapeDetailData = {
59
60
  reverseGeocode: Record<string, unknown> | null;
60
61
  buyLocation: Record<string, unknown> | null;
61
62
  productDetailsType: string | null;
63
+ sellerSnapshot: SellerSnapshotJSONB | null;
62
64
  scrapeMs?: number;
63
65
  extractorSource?: string | null;
64
66
  attempt?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.types.d.ts","sourceRoot":"","sources":["../../src/types/engine.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,yFAAyF;AACzF,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B,CAAC;AAEF,kEAAkE;AAClE,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,uBAAuB,EAAE,MAAM,CAAC;IAChC,kCAAkC,EAAE,MAAM,CAAC;IAC3C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,yDAAyD;AACzD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,GAAG,EAAE,SAAS,CAAC;CAChB,CAAC;AAEF,gDAAgD;AAChD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,gEAAgE;AAChE,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,oDAAoD;AACpD,MAAM,MAAM,aAAa,GACrB,OAAO,GACP,YAAY,GACZ,eAAe,GACf,eAAe,EAAE,CAAC;AAEtB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,aAAa,CAAC;CACrB,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5C,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC"}
1
+ {"version":3,"file":"engine.types.d.ts","sourceRoot":"","sources":["../../src/types/engine.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,yFAAyF;AACzF,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B,CAAC;AAEF,kEAAkE;AAClE,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,uBAAuB,EAAE,MAAM,CAAC;IAChC,kCAAkC,EAAE,MAAM,CAAC;IAC3C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,yDAAyD;AACzD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,GAAG,EAAE,SAAS,CAAC;CAChB,CAAC;AAEF,gDAAgD;AAChD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,gEAAgE;AAChE,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,oDAAoD;AACpD,MAAM,MAAM,aAAa,GACrB,OAAO,GACP,YAAY,GACZ,eAAe,GACf,eAAe,EAAE,CAAC;AAEtB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,aAAa,CAAC;CACrB,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5C,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,cAAc,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { ItemFilterKey } from './item-check.types';
2
+ import type { SellerIdentityProperty } from './seller-snapshot.types';
2
3
  import type { UserWithRelations } from './user.types';
3
4
  export type ItemFilterResult = {
4
5
  valid: boolean;
@@ -8,8 +9,19 @@ export type ItemFilterResult = {
8
9
  reason?: string;
9
10
  info?: string;
10
11
  };
12
+ /**
13
+ * Satu ban yang siap dicocokkan. Map-nya ber-key
14
+ * `${marketplace huruf kecil}:${nilai identitas}` — sengaja tidak dipisah per
15
+ * property, karena matching lintas property diinginkan (id listing vs
16
+ * `marketplace_user_profile.id` ban tetap kena).
17
+ */
18
+ export type BannedSellerMatch = {
19
+ banId: number;
20
+ property: SellerIdentityProperty;
21
+ sellerName: string | null;
22
+ };
11
23
  export type ItemFilterContext = {
12
24
  user?: UserWithRelations;
13
- bannedSellerKeys: ReadonlySet<string>;
25
+ bannedSellers: ReadonlyMap<string, BannedSellerMatch>;
14
26
  };
15
27
  //# sourceMappingURL=item-filter.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"item-filter.types.d.ts","sourceRoot":"","sources":["../../src/types/item-filter.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACvC,CAAC"}
1
+ {"version":3,"file":"item-filter.types.d.ts","sourceRoot":"","sources":["../../src/types/item-filter.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,sBAAsB,CAAC;IACjC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CACvD,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { SearchWithUser } from './search.types';
2
+ import type { SellerSnapshotJSONB } from './seller-snapshot.types';
2
3
  /** Representasi tabel `Item`. */
3
4
  export type ItemEntity = {
4
5
  id: number;
@@ -8,6 +9,7 @@ export type ItemEntity = {
8
9
  marketPlaceName: string | null;
9
10
  sellerKey: string | null;
10
11
  sellerName: string | null;
12
+ sellerSnapshot?: SellerSnapshotJSONB | null;
11
13
  type: string | null;
12
14
  name: string | null;
13
15
  image: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"item.types.d.ts","sourceRoot":"","sources":["../../src/types/item.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,iCAAiC;AACjC,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,sDAAsD;AACtD,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG;IACxC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;CAC/B,CAAC"}
1
+ {"version":3,"file":"item.types.d.ts","sourceRoot":"","sources":["../../src/types/item.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,iCAAiC;AACjC,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC5C,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,sDAAsD;AACtD,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG;IACxC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;CAC/B,CAAC"}
@@ -43,6 +43,19 @@ export interface ProductChannelProfileEntity {
43
43
  createdAt: string;
44
44
  updatedAt: string;
45
45
  }
46
+ /**
47
+ * Profil banned seller yang dijual sebuah produk (tabel `ProductBannedSellerProfile`).
48
+ */
49
+ export interface ProductBannedSellerProfileEntity {
50
+ id: number;
51
+ productId: number;
52
+ key: string;
53
+ name: string;
54
+ slot: number;
55
+ deleted: boolean;
56
+ createdAt: string;
57
+ updatedAt: string;
58
+ }
46
59
  /** Representasi tabel `Product` — satu katalog untuk semua yang dijual. */
47
60
  export type ProductEntity = {
48
61
  id: number;
@@ -54,9 +67,11 @@ export type ProductEntity = {
54
67
  currency: string;
55
68
  sortOrder: number;
56
69
  isActive: boolean;
70
+ isPublic?: boolean;
57
71
  features: ProductFeature[] | null;
58
72
  searchProfiles: ProductSearchProfileEntity[];
59
73
  channelProfiles: ProductChannelProfileEntity[];
74
+ bannedSellerProfiles?: ProductBannedSellerProfileEntity[];
60
75
  deleted: boolean;
61
76
  createdAt: string;
62
77
  createdBy: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"product.types.d.ts","sourceRoot":"","sources":["../../src/types/product.types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE5C,6CAA6C;AAC7C,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,8EAA8E;AAC9E,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,2EAA2E;AAC3E,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAClC,cAAc,EAAE,0BAA0B,EAAE,CAAC;IAC7C,eAAe,EAAE,2BAA2B,EAAE,CAAC;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC"}
1
+ {"version":3,"file":"product.types.d.ts","sourceRoot":"","sources":["../../src/types/product.types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE5C,6CAA6C;AAC7C,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,8EAA8E;AAC9E,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,2EAA2E;AAC3E,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAClC,cAAc,EAAE,0BAA0B,EAAE,CAAC;IAC7C,eAAe,EAAE,2BAA2B,EAAE,CAAC;IAC/C,oBAAoB,CAAC,EAAE,gCAAgC,EAAE,CAAC;IAC1D,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { InvalidFilterReason, ItemCheckStatus } from './item-check.types';
2
2
  import type { SearchWithUser } from './search.types';
3
+ import type { SellerSnapshotJSONB } from './seller-snapshot.types';
3
4
  /**
4
5
  * Item hasil scrape yang belum tentu ada di DB (`id` null sampai core simpan).
5
6
  * Satu-satunya bentuk item yang lalu-lalang di RMQ/IPC.
@@ -15,6 +16,7 @@ export type ScrapedItem = {
15
16
  marketPlaceName?: string | null;
16
17
  sellerKey?: string | null;
17
18
  sellerName?: string | null;
19
+ sellerSnapshot?: SellerSnapshotJSONB | null;
18
20
  type?: string | null;
19
21
  name?: string | null;
20
22
  image?: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"scrape.types.d.ts","sourceRoot":"","sources":["../../src/types/scrape.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACvC,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACjC,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG;IAC7C,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB,CAAC"}
1
+ {"version":3,"file":"scrape.types.d.ts","sourceRoot":"","sources":["../../src/types/scrape.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC5C,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACvC,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACjC,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG;IAC7C,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB,CAAC"}
@@ -18,6 +18,7 @@ export type SearchEntity = {
18
18
  * (tabel `SubscriptionSearchProfile`); null = search lama, tidak dieksekusi.
19
19
  */
20
20
  subscriptionProfileId?: number | null;
21
+ isSubscriptionActive?: boolean;
21
22
  deleted: boolean;
22
23
  createdAt: string;
23
24
  createdBy: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"search.types.d.ts","sourceRoot":"","sources":["../../src/types/search.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,mCAAmC;AACnC,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC7C,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,gCAAgC;AAChC,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG;IAC1C,IAAI,CAAC,EAAE,iBAAiB,CAAC;CAC1B,CAAC"}
1
+ {"version":3,"file":"search.types.d.ts","sourceRoot":"","sources":["../../src/types/search.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,mCAAmC;AACnC,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC7C,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,gCAAgC;AAChC,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG;IAC1C,IAAI,CAAC,EAAE,iBAAiB,CAAC;CAC1B,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Property identitas seller yang dipakai untuk matching ban.
3
+ * Urutan prioritas: `id`, lalu `user_id`, lalu `marketplace_user_profile.id`.
4
+ */
5
+ export type SellerIdentityProperty = 'id' | 'user_id' | 'marketplace_user_profile.id';
6
+ /** Satu nilai identitas seller yang siap dicocokkan dengan ban. */
7
+ export type SellerIdentity = {
8
+ property: SellerIdentityProperty;
9
+ value: string;
10
+ };
11
+ /** Objek `marketplace_listing_seller` dari PDP Facebook, disimpan apa adanya. */
12
+ export type FacebookSellerV1 = {
13
+ id?: string | number | null;
14
+ user_id?: string | number | null;
15
+ name?: string | null;
16
+ marketplace_user_profile?: {
17
+ id?: string | number | null;
18
+ c2c_orders_shipped?: number | null;
19
+ [key: string]: unknown;
20
+ } | null;
21
+ profile_picture?: {
22
+ uri?: string | null;
23
+ [key: string]: unknown;
24
+ } | null;
25
+ [key: string]: unknown;
26
+ };
27
+ export type SellerSnapshotV1 = {
28
+ source: string;
29
+ version: 1;
30
+ data: FacebookSellerV1;
31
+ };
32
+ /**
33
+ * Snapshot seller (kolom jsonb `sellerSnapshot` di `Item`/`UserItem`/`BannedSeller`).
34
+ * `version` adalah discriminator: pembaca wajib lewat `parseSellerSnapshot`.
35
+ */
36
+ export type SellerSnapshotJSONB = SellerSnapshotV1;
37
+ //# sourceMappingURL=seller-snapshot.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seller-snapshot.types.d.ts","sourceRoot":"","sources":["../../src/types/seller-snapshot.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAC9B,IAAI,GACJ,SAAS,GACT,6BAA6B,CAAC;AAElC,mEAAmE;AACnE,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,sBAAsB,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,iFAAiF;AACjF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,wBAAwB,CAAC,EAAE;QACzB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;QAC5B,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,GAAG,IAAI,CAAC;IACT,eAAe,CAAC,EAAE;QAChB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,GAAG,IAAI,CAAC;IACT,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,EAAE,gBAAgB,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=seller-snapshot.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seller-snapshot.types.js","sourceRoot":"","sources":["../../src/types/seller-snapshot.types.ts"],"names":[],"mappings":""}
@@ -2,7 +2,7 @@ import type { ProductEntity } from './product.types';
2
2
  export type SubscriptionStatus = 'trialing' | 'active' | 'past_due' | 'canceled' | 'expired';
3
3
  export type SubscriptionSource = 'manual' | 'trial' | 'payment';
4
4
  /** Kelompok entitlement di dalam satu langganan. */
5
- export type SubscriptionProfileKind = 'search' | 'channel';
5
+ export type SubscriptionProfileKind = 'search' | 'channel' | 'banned_seller';
6
6
  /**
7
7
  * Profil scanner beku milik satu langganan (tabel `SubscriptionSearchProfile`).
8
8
  * Dibuat sekali saat langganan dibuat; `Search` menempel ke baris ini, bukan ke
@@ -36,6 +36,18 @@ export interface SubscriptionChannelProfileEntity {
36
36
  deleted: boolean;
37
37
  createdAt: string;
38
38
  }
39
+ /**
40
+ * Profil banned seller beku milik satu langganan (tabel `SubscriptionBannedSellerProfile`).
41
+ */
42
+ export interface SubscriptionBannedSellerProfileEntity {
43
+ id: number;
44
+ subscriptionId: number;
45
+ key: string;
46
+ name: string;
47
+ slot: number;
48
+ deleted: boolean;
49
+ createdAt: string;
50
+ }
39
51
  /** Copy profil untuk audit; angka yang dipakai logika ada di baris relasional. */
40
52
  export interface SubscriptionProfileSnapshot {
41
53
  profileId: number;
@@ -79,5 +91,6 @@ export type SubscriptionWithProduct = SubscriptionEntity & {
79
91
  product?: ProductEntity;
80
92
  searchProfiles?: SubscriptionSearchProfileEntity[];
81
93
  channelProfiles?: SubscriptionChannelProfileEntity[];
94
+ bannedSellerProfiles?: SubscriptionBannedSellerProfileEntity[];
82
95
  };
83
96
  //# sourceMappingURL=subscription.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscription.types.d.ts","sourceRoot":"","sources":["../../src/types/subscription.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,MAAM,kBAAkB,GAC1B,UAAU,GACV,QAAQ,GACR,UAAU,GACV,UAAU,GACV,SAAS,CAAC;AAEd,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhE,oDAAoD;AACpD,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3D;;;;GAIG;AACH,MAAM,WAAW,+BAA+B;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,gCAAgC;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,kFAAkF;AAClF,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,uBAAuB,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACvC;AAED,+EAA+E;AAC/E,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,2BAA2B,EAAE,CAAC;CACzC;AAED,yCAAyC;AACzC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACtC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,6CAA6C;AAC7C,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,GAAG;IACzD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,cAAc,CAAC,EAAE,+BAA+B,EAAE,CAAC;IACnD,eAAe,CAAC,EAAE,gCAAgC,EAAE,CAAC;CACtD,CAAC"}
1
+ {"version":3,"file":"subscription.types.d.ts","sourceRoot":"","sources":["../../src/types/subscription.types.ts"],"names":[],"mappings":"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"}
@@ -28,5 +28,6 @@ export interface SubscriptionUsageSummary {
28
28
  remainingDays: number;
29
29
  searches: UsageMetric;
30
30
  channels: UsageMetric;
31
+ bannedSellers?: UsageMetric;
31
32
  }
32
33
  //# sourceMappingURL=usage.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usage.types.d.ts","sourceRoot":"","sources":["../../src/types/usage.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAE9B,8DAA8D;AAC9D,MAAM,WAAW,kBAAkB;IACjC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,IAAI,EAAE,uBAAuB,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACvC;AAED,kEAAkE;AAClE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED,wEAAwE;AACxE,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,WAAW,CAAC;CACvB"}
1
+ {"version":3,"file":"usage.types.d.ts","sourceRoot":"","sources":["../../src/types/usage.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAE9B,8DAA8D;AAC9D,MAAM,WAAW,kBAAkB;IACjC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,IAAI,EAAE,uBAAuB,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACvC;AAED,kEAAkE;AAClE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED,wEAAwE;AACxE,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,WAAW,CAAC;IACtB,aAAa,CAAC,EAAE,WAAW,CAAC;CAC7B"}
@@ -16,6 +16,9 @@ export type UserChannelEntity = {
16
16
  * (tabel `SubscriptionChannelProfile`); null = channel lama, tidak dipakai.
17
17
  */
18
18
  subscriptionProfileId?: number | null;
19
+ subscriptionId?: number | null;
20
+ subscriptionName?: string | null;
21
+ isSubscriptionActive?: boolean;
19
22
  deleted: boolean;
20
23
  createdAt: string;
21
24
  createdBy: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"user-channel.types.d.ts","sourceRoot":"","sources":["../../src/types/user-channel.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,wCAAwC;AACxC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC"}
1
+ {"version":3,"file":"user-channel.types.d.ts","sourceRoot":"","sources":["../../src/types/user-channel.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,wCAAwC;AACxC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thinkerchain/flipper-entities",
3
- "version": "2.3.0",
3
+ "version": "2.4.0",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",