From 2bab9da7c88372fafda033fd80c92b6291976722 Mon Sep 17 00:00:00 2001 From: Pau Costa Date: Sat, 28 Mar 2026 17:10:22 +0100 Subject: [PATCH] Add assets module with file upload and retrieval support - Introduce `AssetsModule` with APIs for uploading and retrieving organization logos, building images, and floor plans. - Implement file validation for type and size (10MB max). - Add `resolveAssetUrl` utility for generating absolute asset URLs. - Enhance admin UI components to support image file uploads and previews. - Update Prisma schema to associate assets with organizations, buildings, and floors. - Modify existing update logic to clear references when external URLs are used. --- .idea/workspace.xml | 31 ++- apps/api/package.json | 1 + apps/api/prisma/schema.prisma | 164 ++++++++-------- apps/api/src/app.module.ts | 2 + apps/api/src/assets/assets.controller.ts | 179 ++++++++++++++++++ apps/api/src/assets/assets.module.ts | 11 ++ apps/api/src/assets/assets.service.ts | 111 +++++++++++ .../dto/update-organization.dto.ts | 3 +- .../organizations/organizations.service.ts | 11 +- apps/api/src/spaces/dto/building-floor.dto.ts | 4 +- apps/api/src/spaces/spaces.service.ts | 31 ++- apps/web/src/lib/api/client.ts | 6 +- .../src/lib/components/FloorplanViewer.svelte | 5 +- .../admin/BuildingEditorModal.svelte | 90 ++++++++- .../components/admin/FloorplanEditor.svelte | 42 ++-- apps/web/src/lib/utils/url.ts | 15 ++ apps/web/src/routes/+layout.svelte | 3 +- .../routes/admin/organization/+page.svelte | 77 +++++++- apps/web/src/routes/dashboard/+page.svelte | 3 +- package-lock.json | 10 + 20 files changed, 679 insertions(+), 120 deletions(-) create mode 100644 apps/api/src/assets/assets.controller.ts create mode 100644 apps/api/src/assets/assets.module.ts create mode 100644 apps/api/src/assets/assets.service.ts create mode 100644 apps/web/src/lib/utils/url.ts diff --git a/.idea/workspace.xml b/.idea/workspace.xml index e4c4e7c..0898810 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -4,12 +4,23 @@