From 183dcddc2f02b1b1b293c328919260058e6dc756 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Risue=C3=B1o?= <113106006+ivan-risueno@users.noreply.github.com> Date: Wed, 21 Oct 2026 15:38:34 +0200 Subject: [PATCH 1/2] Add new liquibase sql changelog containing the feedback schema definition (#46) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Iván Risueño --- .../migrations/008_create_feedback_tables.sql | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 persistence/src/main/resources/db/changelog/migrations/008_create_feedback_tables.sql diff --git a/persistence/src/main/resources/db/changelog/migrations/008_create_feedback_tables.sql b/persistence/src/main/resources/db/changelog/migrations/008_create_feedback_tables.sql new file mode 100644 index 0000000..dc0268d --- /dev/null +++ b/persistence/src/main/resources/db/changelog/migrations/008_create_feedback_tables.sql @@ -0,0 +1,44 @@ +--liquibase formatted sql + +-- ============================================================================ +-- changeset ods:011-create-feedback-tables +-- Description: Stores feedback questionnaire submissions, including client +-- metadata, the questions shown to the submitter, and their answers. +-- ============================================================================ +CREATE TABLE IF NOT EXISTS feedback_submissions ( + id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY, + client_id UUID NOT NULL, + client_app_registration_id UUID NOT NULL, + client_name VARCHAR(255) NOT NULL, + submitter VARCHAR(255), + submitted_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + questions JSONB NOT NULL, + answers JSONB NOT NULL, + CONSTRAINT fk_feedback_submissions_client_app + FOREIGN KEY (client_id) + REFERENCES client_apps (id) + ON DELETE RESTRICT, + CONSTRAINT chk_feedback_submissions_questions_array + CHECK (COALESCE(jsonb_typeof(questions) = 'array', FALSE)), + CONSTRAINT chk_feedback_submissions_answers_object + CHECK (COALESCE(jsonb_typeof(answers) = 'object', FALSE)) +); + +CREATE INDEX IF NOT EXISTS idx_feedback_submissions_client_id + ON feedback_submissions (client_id); + +CREATE INDEX IF NOT EXISTS idx_feedback_submissions_client_app_registration_id + ON feedback_submissions (client_app_registration_id); + +COMMENT ON TABLE feedback_submissions + IS 'Questionnaire submissions with question and answer snapshots'; +COMMENT ON COLUMN feedback_submissions.client_app_registration_id + IS 'Azure Application registration ID (client_id), captured at submission time'; +COMMENT ON COLUMN feedback_submissions.client_name + IS 'Denormalized client application name captured at submission time'; +COMMENT ON COLUMN feedback_submissions.questions + IS 'Questionnaire definition shown to the submitter, stored as a JSON array'; +COMMENT ON COLUMN feedback_submissions.answers + IS 'Submitted answers keyed by question and follow-up IDs, stored as a JSON object'; + +--rollback DROP TABLE IF EXISTS feedback_submissions; From 49bd3f99662e8bf71f1c94df9268bd44c213cbc4 Mon Sep 17 00:00:00 2001 From: Jorge Romero Date: Wed, 21 Oct 2026 16:19:29 +0200 Subject: [PATCH 2/2] Add codeowners file --- CODEOWNERS | 1 + 1 file changed, 1 insertion(+) create mode 100644 CODEOWNERS diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 0000000..8601742 --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1 @@ +@jorge-romero