feat: questions union

Allows responses to include questionnaire questions of multiple versions
This commit is contained in:
Chris Milne 2026-06-11 13:38:14 +01:00
parent 38c26cca7b
commit 8925280f96
2 changed files with 10 additions and 4 deletions

View file

@ -22,7 +22,10 @@ from src.schemas import (
from src.contact.schemas import ContactModel from src.contact.schemas import ContactModel
from src.organisation.constants import Status, ContactType 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): class QuestionnaireMetadata(CustomBaseModel):
@ -32,7 +35,7 @@ class QuestionnaireMetadata(CustomBaseModel):
class Questionnaire(CustomBaseModel): class Questionnaire(CustomBaseModel):
metadata: QuestionnaireMetadata metadata: QuestionnaireMetadata
questions: QuestionnaireQuestionsVersion0 questions: questionnaire_union
class ContactSummary(CustomBaseModel): class ContactSummary(CustomBaseModel):
@ -53,7 +56,7 @@ class OrgSchema(OrgIDMixin):
class OrgPostOrgRequest(CustomBaseModel): class OrgPostOrgRequest(CustomBaseModel):
name: str name: str
intake_questionnaire: Optional[QuestionnaireQuestionsVersion0] = None intake_questionnaire: Optional[CurrentQuestions] = None
class OrgPostOrgResponse(CustomBaseModel): class OrgPostOrgResponse(CustomBaseModel):
@ -63,7 +66,7 @@ class OrgPostOrgResponse(CustomBaseModel):
class OrgPatchQuestionnaireRequest(OrgIDMixin): class OrgPatchQuestionnaireRequest(OrgIDMixin):
intake_questionnaire: QuestionnaireQuestionsVersion0 intake_questionnaire: CurrentQuestions
partial: bool partial: bool

View file

@ -11,3 +11,6 @@ class QuestionnaireQuestionsVersion0(QuestionnaireQuestions):
question_one: Optional[str] = None question_one: Optional[str] = None
question_two: Optional[str] = None question_two: Optional[str] = None
question_three: Optional[str] = None question_three: Optional[str] = None
questionnaire_union = QuestionnaireQuestionsVersion0 # | QuestionnaireQuestionsVersion1