"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.setupQuestionChallenge = setupQuestionChallenge;
const Entities_1 = require("../Entities");
const PM_1 = require("../PM");
const UC_1 = require("../UC");
const setupQuestionAnswer_1 = require("./setupQuestionAnswer");
function setupQuestionChallenge(appObjects) {
    const ao = appObjects.getOrCreate("QuestionChallenge");
    const questionEntity = (0, Entities_1.makeQuestionEntity)(ao);
    (0, UC_1.makeAddQuestionAnswerUC)(ao);
    (0, UC_1.makeDeleteQuestionAnswerUC)(ao);
    (0, UC_1.makeSubmitQuestionAnswerUC)(ao);
    new UC_1.SerializeQuestionChallenge(ao);
    (0, UC_1.makeValidateQuestionChallengeStateUC)(ao);
    (0, PM_1.makeQuestionChallengePM)(ao);
    questionEntity.answerFactory = (id) => (0, setupQuestionAnswer_1.setupQuestionAnswer)(appObjects, id);
    return questionEntity;
}
//# sourceMappingURL=setupQuestionChallenge.js.map