Files
discord-decomp/modules/collectibles/records/CollectiblesPurchaseRecord.tsx
T
2026-11-01 12:12:55 +02:00

69 lines
3.1 KiB
TypeScript

// Metro module 5826 (f5827).
import CollectiblesBundledProductRecord from "./CollectiblesBundledProductRecord";
import { createCollectiblesItemsFromServerResponse } from "./CollectiblesItemRecord";
import { CollectiblesVariantProductRecord } from "./CollectiblesProductRecord";
import { REWARD_CATEGORY_AND_REWARD_SKU_IDS } from "../CollectiblesShopConstants";
import { PREMIUM_TYPE_NONE } from "../../../Constants";
import getPricesFromServer from "../../skus/utils/getPricesFromServer";
class CollectiblesPurchaseRecord {
constructor(a0) {
this.skuId = a0.skuId;
this.name = a0.name;
this.type = a0.type;
this.premiumType = a0.premiumType;
this.items = a0.items;
this.categorySkuId = a0.categorySkuId;
this.isCategoryReward = a0.isCategoryReward;
this.prices = a0.prices;
this.bundledProducts = a0.bundledProducts;
this.googleSkuIds = a0.googleSkuIds;
this.variants = a0.variants;
this.eligibleOffers = a0.eligibleOffers;
this.baseVariantName = a0.baseVariantName;
this.baseVariantSkuId = a0.baseVariantSkuId;
this.variantLabel = a0.variantLabel;
this.variantValue = a0.variantValue;
this.purchasedAt = a0.purchasedAt;
this.purchaseType = a0.purchaseType;
this.expiresAt = a0.expiresAt;
}
static fromServer({ type, sku_id, name, premium_type, category_sku_id, prices, bundled_products, variants, base_variant_name, base_variant_sku_id, variant_label, variant_value, purchased_at, purchase_type, expires_at, ...rest }) {
const premiumType = premium_type !== PREMIUM_TYPE_NONE ? premium_type : null;
const isCategoryReward = REWARD_CATEGORY_AND_REWARD_SKU_IDS.some((item) => item.rewardSkuId === sku_id);
const pricesFromServer = getPricesFromServer(prices);
const collectiblesItemsFromServerResponse = createCollectiblesItemsFromServerResponse(rest.items);
const bundledProducts = bundled_products == null ? void 0 : bundled_products.map(CollectiblesBundledProductRecord.fromServer);
const variants2 = variants == null ? void 0 : variants.map(CollectiblesVariantProductRecord.fromServer);
const { google_sku_ids, eligible_offers } = rest;
let purchasedAt = purchased_at;
if (purchasedAt != null) {
purchasedAt = new Date(purchased_at);
}
const expiresAt = expires_at != null ? new Date(expires_at) : null;
const r70 = {
__proto__: CollectiblesPurchaseRecord.prototype
};
r70.skuId = sku_id;
r70.name = name;
r70.type = type;
r70.premiumType = premiumType;
r70.items = collectiblesItemsFromServerResponse;
r70.categorySkuId = category_sku_id;
r70.isCategoryReward = isCategoryReward;
r70.prices = pricesFromServer;
r70.bundledProducts = bundledProducts;
r70.googleSkuIds = google_sku_ids;
r70.variants = variants2;
r70.eligibleOffers = eligible_offers;
r70.baseVariantName = base_variant_name;
r70.baseVariantSkuId = base_variant_sku_id;
r70.variantLabel = variant_label;
r70.variantValue = variant_value;
r70.purchasedAt = purchasedAt;
r70.purchaseType = purchase_type;
r70.expiresAt = expiresAt;
return r70;
}
}
export default CollectiblesPurchaseRecord;