import Component from "@ember/component";
import CustomWizardSubscription from "../models/custom-wizard-subscription";
import { notEmpty } from "@ember/object/computed";
import discourseComputed from "discourse-common/utils/decorators";
import I18n from "I18n";

export default Component.extend({
  classNameBindings: [
    ":custom-wizard-subscription",
    "subscription.active:active:inactive",
  ],
  subscribed: notEmpty("subscription"),

  @discourseComputed("subscription.type")
  title(type) {
    return type
      ? I18n.t(`admin.wizard.subscription.subscription.title.${type}`)
      : I18n.t("admin.wizard.subscription.not_subscribed");
  },

  @discourseComputed("subscription.active")
  stateClass(active) {
    return active ? "active" : "inactive";
  },

  @discourseComputed("stateClass")
  stateLabel(stateClass) {
    return I18n.t(
      `admin.wizard.subscription.subscription.status.${stateClass}`
    );
  },

  actions: {
    update() {
      this.set("updating", true);
      CustomWizardSubscription.update()
        .then((result) => {
          if (result.success) {
            this.setProperties({
              updateIcon: "check",
              subscription: result.subscription,
            });
          } else {
            this.set("updateIcon", "times");
          }
        })
        .finally(() => {
          this.set("updating", false);
          setTimeout(() => {
            this.set("updateIcon", null);
          }, 7000);
        });
    },
  },
});