File refs in one table

Added a file service
Refactored evidence and vendor compliance associated services and resolvers
Created SQL migration scripts
Updated GraphQL schema accordingly and the UI components
Removed unused methods and resolvers for evidence service

Signed-off-by: Yannis Varni <yannis@edinomis.fr>
This commit is contained in:
Yannis Varni
2025-10-03 15:38:00 +02:00
committed by Sacha Al Himdani
parent 3822b1916c
commit ff7ba08fc1
35 changed files with 1586 additions and 1658 deletions

View File

@@ -0,0 +1,41 @@
ALTER TABLE
vendor_compliance_reports
ADD COLUMN report_file_id text
REFERENCES files(id)
ON UPDATE CASCADE
ON DELETE RESTRICT;
WITH
/* 25 is for FileEntityType */
vcr_files AS (
SELECT
vcr.id as report_id,
generate_gid(decode_base64_unpadded(vcr.tenant_id), 25) as file_id,
vcr.tenant_id,
'probod' as bucket_name,
'application/pdf' as mime_type,
vcr.report_name,
vcr.file_key,
vcr.file_size,
vcr.created_at,
vcr.updated_at
FROM vendor_compliance_reports vcr
),
inserted_files AS (
INSERT INTO files (id, tenant_id, bucket_name, mime_type, file_name, file_key, file_size, created_at, updated_at)
SELECT file_id, tenant_id, bucket_name, mime_type, report_name, file_key::uuid, file_size, created_at, updated_at
FROM vcr_files
RETURNING id, tenant_id
)
SELECT vf.report_id, vf.file_id
INTO TEMP TABLE file_vcr_mapping
FROM vcr_files vf;
UPDATE vendor_compliance_reports
SET report_file_id = fv.file_id
FROM file_vcr_mapping fv
WHERE vendor_compliance_reports.id = fv.report_id;
ALTER TABLE vendor_compliance_reports
ALTER COLUMN file_key DROP NOT NULL,
ALTER COLUMN file_size DROP NOT NULL;