From 6adce51e6c2edf63051c8b89b2613842cc302e0f Mon Sep 17 00:00:00 2001 From: Ryan Moon Date: Sat, 28 Mar 2026 15:34:57 -0500 Subject: [PATCH] Add member profile photo to planning docs profile_image_file_id on member table, entity_type=member category=profile in file storage. UI shows silhouette placeholder when empty. --- planning/02_Domain_Accounts_Customers.md | 6 ++++++ planning/23_File_Storage_Architecture.md | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/planning/02_Domain_Accounts_Customers.md b/planning/02_Domain_Accounts_Customers.md index 5a637ff..6162d0f 100644 --- a/planning/02_Domain_Accounts_Customers.md +++ b/planning/02_Domain_Accounts_Customers.md @@ -213,6 +213,12 @@ varchar Auto-generated 6-digit random number, unique per company. Human-readable member ID. +profile_image_file_id + +uuid FK + +Nullable — references file.id. Profile photo for the member. Uploaded via the file storage API with entity_type = member, category = profile. + first_name varchar diff --git a/planning/23_File_Storage_Architecture.md b/planning/23_File_Storage_Architecture.md index fe1c539..6be8425 100644 --- a/planning/23_File_Storage_Architecture.md +++ b/planning/23_File_Storage_Architecture.md @@ -220,6 +220,7 @@ Steps: ## 8.1 Which Domains Use File Storage Domain | Entity Type | Categories | Typical Files +Members | member | profile | Profile photo (1 per member). UI shows silhouette placeholder when empty. Member Identifiers | member_identifier | front, back | DL/passport/school ID photos (2 per ID) Products | product | primary, gallery, thumbnail | Product catalog photos (1-5 per product) Rental Agreements | rental_agreement | document, signature, guardian_signature | Signed PDF + signature images @@ -232,6 +233,11 @@ Consignment | consignment_detail | agreement | Consignment agreement PDF ## 8.2 Schema Changes +### member — Add Profile Photo + +Column | Type | Notes +profile_image_file_id | uuid FK | References file.id — profile photo. UI shows silhouette placeholder when null. + ### member_identifier — Replace Base64 Columns Remove `image_front` (text) and `image_back` (text) columns. Replace with: