From 6d534352b2e5d306a49f3cbf5ce627b7a16437f8 Mon Sep 17 00:00:00 2001 From: DaX Date: Fri, 29 Aug 2025 12:41:34 +0200 Subject: [PATCH] Add phone field to color request form and database --- api/server.js | 9 ++++---- app/upadaj/requests/page.tsx | 8 +++++++ .../017_add_phone_to_color_requests.sql | 8 +++++++ src/components/ColorRequestModal.tsx | 21 +++++++++++++++++-- 4 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 database/migrations/017_add_phone_to_color_requests.sql diff --git a/api/server.js b/api/server.js index 22d6c77..87be374 100644 --- a/api/server.js +++ b/api/server.js @@ -258,7 +258,8 @@ app.post('/api/color-requests', async (req, res) => { color_name, material_type, finish_type, - user_email, + user_email, + user_phone, user_name, description, reference_url @@ -292,10 +293,10 @@ app.post('/api/color-requests', async (req, res) => { // Create new request const result = await pool.query( `INSERT INTO color_requests - (color_name, material_type, finish_type, user_email, user_name, description, reference_url) - VALUES ($1, $2, $3, $4, $5, $6, $7) + (color_name, material_type, finish_type, user_email, user_phone, user_name, description, reference_url) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8) RETURNING *`, - [color_name, material_type, finish_type, user_email, user_name, description, reference_url] + [color_name, material_type, finish_type, user_email, user_phone, user_name, description, reference_url] ); res.json({ message: 'Color request submitted successfully', diff --git a/app/upadaj/requests/page.tsx b/app/upadaj/requests/page.tsx index a5528f4..5be9f53 100644 --- a/app/upadaj/requests/page.tsx +++ b/app/upadaj/requests/page.tsx @@ -11,6 +11,7 @@ interface ColorRequest { material_type: string; finish_type: string; user_email: string; + user_phone: string; user_name: string; description: string; reference_url: string; @@ -215,6 +216,13 @@ export default function ColorRequestsAdmin() { ) : ( Anonimno )} + {request.user_phone && ( +
+ + {request.user_phone} + +
+ )} diff --git a/database/migrations/017_add_phone_to_color_requests.sql b/database/migrations/017_add_phone_to_color_requests.sql new file mode 100644 index 0000000..73e630e --- /dev/null +++ b/database/migrations/017_add_phone_to_color_requests.sql @@ -0,0 +1,8 @@ +-- Migration: Add phone field to color_requests table +-- Allows users to provide phone number for contact + +ALTER TABLE color_requests +ADD COLUMN IF NOT EXISTS user_phone VARCHAR(50); + +-- Add comment to describe the new column +COMMENT ON COLUMN color_requests.user_phone IS 'User phone number for contact (optional)'; \ No newline at end of file diff --git a/src/components/ColorRequestModal.tsx b/src/components/ColorRequestModal.tsx index 961fb58..1a30c17 100644 --- a/src/components/ColorRequestModal.tsx +++ b/src/components/ColorRequestModal.tsx @@ -13,7 +13,8 @@ export default function ColorRequestModal({ isOpen, onClose }: ColorRequestModal color_name: '', material_type: 'PLA', finish_type: 'Basic', - user_email: '' + user_email: '', + user_phone: '' }); const [isSubmitting, setIsSubmitting] = useState(false); const [message, setMessage] = useState<{ type: 'success' | 'error', text: string } | null>(null); @@ -25,7 +26,8 @@ export default function ColorRequestModal({ isOpen, onClose }: ColorRequestModal color_name: '', material_type: 'PLA', finish_type: 'Basic', - user_email: '' + user_email: '', + user_phone: '' }); setMessage(null); } @@ -184,6 +186,21 @@ export default function ColorRequestModal({ isOpen, onClose }: ColorRequestModal /> +
+ + +
+