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

205 lines
7.5 KiB
TypeScript

// Metro module 6263 (f6264).
import Record from "../lib/Record";
import { CountryListMode, PromotionTypes } from "../modules/premium/promotions/constants";
import * as _Module1384 from "../_bundle/Module1384";
class PromotionRecord extends Record {
constructor(a0) {
super();
this.id = a0.id;
this.trialId = a0.trialId;
this.startDate = a0.startDate;
this.endDate = a0.endDate;
this.outboundRedemptionEndDate = a0.outboundRedemptionEndDate;
this.inboundHeaderText = a0.inboundHeaderText;
this.inboundBodyText = a0.inboundBodyText;
this.inboundHelpCenterLink = a0.inboundHelpCenterLink;
this.outboundTitle = a0.outboundTitle;
this.outboundRedemptionModalBody = a0.outboundRedemptionModalBody;
this.outboundTermsAndConditions = a0.outboundTermsAndConditions;
this.outboundRedemptionPageLink = a0.outboundRedemptionPageLink;
this.outboundRedemptionUrlFormat = a0.outboundRedemptionUrlFormat;
let flags = a0.flags;
if (flags == null) {
flags = 0;
}
this.flags = flags;
let inboundRestrictedCountries = a0.inboundRestrictedCountries;
if (inboundRestrictedCountries == null) {
inboundRestrictedCountries = [];
}
this.inboundRestrictedCountries = inboundRestrictedCountries;
let outboundRestrictedCountries = a0.outboundRestrictedCountries;
if (outboundRestrictedCountries == null) {
outboundRestrictedCountries = [];
}
this.outboundRestrictedCountries = outboundRestrictedCountries;
let allowedCountries = a0.allowedCountries;
if (allowedCountries == null) {
allowedCountries = [];
}
this.allowedCountries = allowedCountries;
let countryListMode = a0.countryListMode;
if (countryListMode == null) {
countryListMode = CountryListMode.BLOCKLIST;
}
this.countryListMode = countryListMode;
this.promotionType = a0.promotionType;
this.partnerId = a0.partnerId;
this.marketingComponents = a0.marketingComponents;
this.rewardSkuIds = a0.rewardSkuIds;
let bogoRewardEnabled = a0.bogoRewardEnabled;
if (bogoRewardEnabled == null) {
bogoRewardEnabled = false;
}
this.bogoRewardEnabled = bogoRewardEnabled;
this.promotionKey = a0.promotionKey;
}
static createFromServer(a0) {
const r3 = {
id: a0.id,
trialId: a0.trial_id,
startDate: new Date(a0.start_date),
endDate: new Date(a0.end_date),
outboundRedemptionEndDate: a0.outbound_redemption_end_date != null ? new Date(a0.outbound_redemption_end_date) : null,
inboundHeaderText: null,
inboundBodyText: null,
inboundHelpCenterLink: null,
outboundTitle: null,
outboundRedemptionModalBody: null,
outboundTermsAndConditions: null,
outboundRedemptionPageLink: null,
outboundRedemptionUrlFormat: null,
flags: null,
inboundRestrictedCountries: null,
outboundRestrictedCountries: null,
allowedCountries: null,
countryListMode: null,
promotionType: null,
partnerId: null,
marketingComponents: null,
rewardSkuIds: null,
bogoRewardEnabled: null,
promotionKey: null
};
let inbound_header_text = a0.inbound_header_text;
if (inbound_header_text == null) {
inbound_header_text = "";
}
r3.inboundHeaderText = inbound_header_text;
let inbound_body_text = a0.inbound_body_text;
if (inbound_body_text == null) {
inbound_body_text = "";
}
r3.inboundBodyText = inbound_body_text;
let inbound_help_center_link = a0.inbound_help_center_link;
if (inbound_help_center_link == null) {
inbound_help_center_link = "";
}
r3.inboundHelpCenterLink = inbound_help_center_link;
let outbound_title = a0.outbound_title;
if (outbound_title == null) {
outbound_title = "";
}
r3.outboundTitle = outbound_title;
let outbound_redemption_modal_body = a0.outbound_redemption_modal_body;
if (outbound_redemption_modal_body == null) {
outbound_redemption_modal_body = "";
}
r3.outboundRedemptionModalBody = outbound_redemption_modal_body;
let outbound_terms_and_conditions = a0.outbound_terms_and_conditions;
if (outbound_terms_and_conditions == null) {
outbound_terms_and_conditions = "";
}
r3.outboundTermsAndConditions = outbound_terms_and_conditions;
let outbound_redemption_page_link = a0.outbound_redemption_page_link;
if (outbound_redemption_page_link == null) {
outbound_redemption_page_link = "";
}
r3.outboundRedemptionPageLink = outbound_redemption_page_link;
let outbound_redemption_url_format = a0.outbound_redemption_url_format;
if (outbound_redemption_url_format == null) {
outbound_redemption_url_format = "";
}
r3.outboundRedemptionUrlFormat = outbound_redemption_url_format;
r3.flags = a0.flags;
r3.inboundRestrictedCountries = a0.inbound_restricted_countries;
r3.outboundRestrictedCountries = a0.outbound_restricted_countries;
let allowed_countries = a0.allowed_countries;
if (allowed_countries == null) {
allowed_countries = [];
}
r3.allowedCountries = allowed_countries;
let country_list_mode = a0.country_list_mode;
if (country_list_mode == null) {
country_list_mode = CountryListMode.BLOCKLIST;
}
r3.countryListMode = country_list_mode;
r3.promotionType = a0.promotion_type;
let partner_id = a0.partner_id;
if (partner_id == null) {
partner_id = null;
}
r3.partnerId = partner_id;
let marketing_components = a0.marketing_components;
if (marketing_components == null) {
marketing_components = [];
}
r3.marketingComponents = marketing_components;
const metadata = a0.metadata;
let rewardSkuIds = metadata == null ? void 0 : metadata.premium_promotion?.reward_sku_ids;
if (rewardSkuIds == null) {
const metadata2 = a0.metadata;
rewardSkuIds = metadata2 == null ? void 0 : metadata2.gift_promotion?.reward_sku_ids;
}
if (rewardSkuIds == null) {
rewardSkuIds = [];
}
r3.rewardSkuIds = rewardSkuIds;
const metadata3 = a0.metadata;
const r61 = metadata3 == null;
let r62 = void 0;
if (!r61) {
const premium_promotion = metadata3.premium_promotion;
const r64 = premium_promotion == null;
r62 = void 0;
if (!r64) {
const reward_config = premium_promotion.reward_config;
r62 = reward_config == null ? void 0 : reward_config.bogo?.enabled;
}
}
r3.bogoRewardEnabled = r62 === true;
let promotion_key = a0.promotion_key;
if (promotion_key == null) {
promotion_key = "";
}
r3.promotionKey = promotion_key;
return new PromotionRecord(r3);
}
get isBogo() {
return this.promotionType === PromotionTypes.BOGO;
}
get isMarketingMoment() {
return this.promotionType === PromotionTypes.MARKETING_MOMENT;
}
get hasBogoReward() {
return this.bogoRewardEnabled;
}
hasFlag(a0) {
return _Module1384.hasFlag(this.flags, a0);
}
isCountryRestricted(a0) {
if (this.countryListMode === CountryListMode.ALLOWLIST) {
return !this.allowedCountries.includes(a0);
}
const promotionType = this.promotionType;
if (PromotionTypes.THIRD_PARTY_INBOUND !== promotionType && PromotionTypes.THIRD_PARTY_DIRECT_FULFILLMENT !== promotionType) {
if (PromotionTypes.THIRD_PARTY_OUTBOUND !== promotionType && PromotionTypes.THIRD_PARTY_OUTBOUND_RECURRING !== promotionType) {
return false;
}
return this.outboundRestrictedCountries.includes(a0);
}
return this.inboundRestrictedCountries.includes(a0);
}
}
export default PromotionRecord;