import { makeQuestionEntity } from "../Entities";
import { makeQuestionChallengePM } from "../PM";
import { makeAddQuestionAnswerUC, makeDeleteQuestionAnswerUC, makeSubmitQuestionAnswerUC, makeValidateQuestionChallengeStateUC, SerializeQuestionChallenge, } from "../UC";
import { setupQuestionAnswer } from "./setupQuestionAnswer";
export function setupQuestionChallenge(appObjects) {
    const ao = appObjects.getOrCreate("QuestionChallenge");
    const questionEntity = makeQuestionEntity(ao);
    makeAddQuestionAnswerUC(ao);
    makeDeleteQuestionAnswerUC(ao);
    makeSubmitQuestionAnswerUC(ao);
    new SerializeQuestionChallenge(ao);
    makeValidateQuestionChallengeStateUC(ao);
    makeQuestionChallengePM(ao);
    questionEntity.answerFactory = (id) => setupQuestionAnswer(appObjects, id);
    return questionEntity;
}
//# sourceMappingURL=setupQuestionChallenge.js.map