41 lines
1.5 KiB
TypeScript
41 lines
1.5 KiB
TypeScript
// Metro module 4087 (f4088).
|
|
import Record from "../lib/Record";
|
|
import { $callWithNewTarget } from "../_hermes/prelude";
|
|
class GuildBoostSlotRecord extends Record {
|
|
constructor(a0) {
|
|
super();
|
|
this.id = a0.id;
|
|
this.subscriptionId = a0.subscriptionId;
|
|
this.premiumGuildSubscription = a0.premiumGuildSubscription;
|
|
this.canceled = a0.canceled;
|
|
this.cooldownEndsAt = a0.cooldownEndsAt;
|
|
this.subscription = a0.subscription;
|
|
}
|
|
static createFromServer(a0, a1) {
|
|
const { id, subscription_id } = a0;
|
|
const premiumGuildSubscription = a0.premium_guild_subscription != null ? {
|
|
id: a0.premium_guild_subscription.id,
|
|
guildId: a0.premium_guild_subscription.guild_id
|
|
} : null;
|
|
const { canceled, cooldown_ends_at } = a0;
|
|
const prototypeOf = Object.getPrototypeOf(GuildBoostSlotRecord);
|
|
const r8 = Object.create(GuildBoostSlotRecord.prototype);
|
|
const r23 = $callWithNewTarget(prototypeOf, r8, GuildBoostSlotRecord);
|
|
const r24 = r23 instanceof Object ? r23 : r8;
|
|
r24.id = id;
|
|
r24.subscriptionId = subscription_id;
|
|
r24.premiumGuildSubscription = premiumGuildSubscription;
|
|
r24.canceled = canceled;
|
|
r24.cooldownEndsAt = cooldown_ends_at;
|
|
r24.subscription = a1;
|
|
return r24;
|
|
}
|
|
isOnCooldown() {
|
|
return this.cooldownEndsAt != null && new Date(this.cooldownEndsAt).getTime() >= Date.now();
|
|
}
|
|
isAvailable() {
|
|
return this.premiumGuildSubscription == null && !this.isOnCooldown();
|
|
}
|
|
}
|
|
export default GuildBoostSlotRecord;
|