import EmberObject from "@ember/object"; import discourseComputed from "discourse-common/utils/decorators"; import { ajax } from "discourse/lib/ajax"; const Plan = EmberObject.extend({ amountDollars: Ember.computed("unit_amount", { get() { return parseFloat(this.get("unit_amount") / 100).toFixed(2); }, set(key, value) { const decimal = parseFloat(value) * 100; this.set("unit_amount", decimal); return value; }, }), @discourseComputed("recurring.interval") billingInterval(interval) { return interval || "one-time"; }, @discourseComputed("amountDollars", "currency", "billingInterval") subscriptionRate(amountDollars, currency, interval) { return `${amountDollars} ${currency.toUpperCase()} / ${interval}`; }, }); Plan.reopenClass({ findAll(data) { return ajax("/s/plans", { method: "get", data }).then((result) => result.map((plan) => Plan.create(plan)) ); }, }); export default Plan;