import Controller from "@ember/controller";
import { or } from "@ember/object/computed";
import discourseComputed from "discourse-common/utils/decorators";

const reasons = {
  noWizard: "none",
  requiresLogin: "requires_login",
  notPermitted: "not_permitted",
  completed: "completed",
};

export default Controller.extend({
  noAccess: or("noWizard", "requiresLogin", "notPermitted", "completed"),

  @discourseComputed("noAccessReason")
  noAccessI18nKey(reason) {
    return reason ? `wizard.${reasons[reason]}` : "wizard.none";
  },

  @discourseComputed
  noAccessReason() {
    return Object.keys(reasons).find((reason) => this.get(reason));
  },
});