From 8925280f963aefcc4eacb96e1bc85750f08d1026 Mon Sep 17 00:00:00 2001 From: luxferre Date: Thu, 11 Jun 2026 13:38:14 +0100 Subject: [PATCH] feat: questions union Allows responses to include questionnaire questions of multiple versions --- src/organisation/schemas.py | 11 +++++++---- src/organisation/schemas_questionnaires.py | 3 +++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/organisation/schemas.py b/src/organisation/schemas.py index 2ea91c1..4641118 100644 --- a/src/organisation/schemas.py +++ b/src/organisation/schemas.py @@ -22,7 +22,10 @@ from src.schemas import ( from src.contact.schemas import ContactModel from src.organisation.constants import Status, ContactType -from src.organisation.schemas_questionnaires import QuestionnaireQuestionsVersion0 +from src.organisation.schemas_questionnaires import ( + QuestionnaireQuestionsVersion0 as CurrentQuestions, + questionnaire_union, +) class QuestionnaireMetadata(CustomBaseModel): @@ -32,7 +35,7 @@ class QuestionnaireMetadata(CustomBaseModel): class Questionnaire(CustomBaseModel): metadata: QuestionnaireMetadata - questions: QuestionnaireQuestionsVersion0 + questions: questionnaire_union class ContactSummary(CustomBaseModel): @@ -53,7 +56,7 @@ class OrgSchema(OrgIDMixin): class OrgPostOrgRequest(CustomBaseModel): name: str - intake_questionnaire: Optional[QuestionnaireQuestionsVersion0] = None + intake_questionnaire: Optional[CurrentQuestions] = None class OrgPostOrgResponse(CustomBaseModel): @@ -63,7 +66,7 @@ class OrgPostOrgResponse(CustomBaseModel): class OrgPatchQuestionnaireRequest(OrgIDMixin): - intake_questionnaire: QuestionnaireQuestionsVersion0 + intake_questionnaire: CurrentQuestions partial: bool diff --git a/src/organisation/schemas_questionnaires.py b/src/organisation/schemas_questionnaires.py index e9f7cfb..491dfe5 100644 --- a/src/organisation/schemas_questionnaires.py +++ b/src/organisation/schemas_questionnaires.py @@ -11,3 +11,6 @@ class QuestionnaireQuestionsVersion0(QuestionnaireQuestions): question_one: Optional[str] = None question_two: Optional[str] = None question_three: Optional[str] = None + + +questionnaire_union = QuestionnaireQuestionsVersion0 # | QuestionnaireQuestionsVersion1