import Plan from "discourse/plugins/discourse-subscriptions/discourse/models/plan"; import computed from "ember-addons/ember-computed-decorators"; import { ajax } from "discourse/lib/ajax"; const AdminPlan = Plan.extend({ isNew: false, name: "", interval: "month", amount: 0, intervals: ["day", "week", "month", "year"], metadata: {}, @computed("trial_period_days") parseTrialPeriodDays(trial_period_days) { if (trial_period_days) { return parseInt(0 + trial_period_days, 10); } else { return 0; } }, destroy() { return ajax(`/s/admin/plans/${this.id}`, { method: "delete" }); }, save() { const data = { nickname: this.nickname, interval: this.interval, amount: this.amount, currency: this.currency, trial_period_days: this.parseTrialPeriodDays, product: this.product, metadata: this.metadata, active: this.active }; return ajax("/s/admin/plans", { method: "post", data }); }, update() { const data = { nickname: this.nickname, trial_period_days: this.parseTrialPeriodDays, metadata: this.metadata, active: this.active }; return ajax(`/s/admin/plans/${this.id}`, { method: "patch", data }); } }); AdminPlan.reopenClass({ findAll(data) { return ajax("/s/admin/plans", { method: "get", data }).then(result => result.map(plan => AdminPlan.create(plan)) ); }, find(id) { return ajax(`/s/admin/plans/${id}`, { method: "get" }).then(plan => AdminPlan.create(plan) ); } }); export default AdminPlan;