import type { ImageAnswerMode } from "@/db/schema/form"; export type QuestionResponseType = | "answer-only" | "answer-optional-image" | "image-only" | "answer-required-image"; type QuestionResponseSettings = { required: boolean; imageAnswerMode: ImageAnswerMode; }; export function getQuestionResponseType( question: QuestionResponseSettings, ): QuestionResponseType { if (question.imageAnswerMode === "required") { return question.required ? "answer-required-image" : "image-only"; } return question.imageAnswerMode === "optional" ? "answer-optional-image" : "answer-only"; } export function getQuestionResponseSettings( responseType: QuestionResponseType, currentRequired = true, ): QuestionResponseSettings { switch (responseType) { case "answer-optional-image": return { required: currentRequired, imageAnswerMode: "optional" }; case "image-only": return { required: false, imageAnswerMode: "required" }; case "answer-required-image": return { required: true, imageAnswerMode: "required" }; default: return { required: currentRequired, imageAnswerMode: "none" }; } } export function isImageOnlyResponse(question: QuestionResponseSettings) { return getQuestionResponseType(question) === "image-only"; }