diff --git a/app/admin/drops/page.tsx b/app/admin/drops/page.tsx index 7bfdfe1..7fc5add 100644 --- a/app/admin/drops/page.tsx +++ b/app/admin/drops/page.tsx @@ -6,10 +6,15 @@ import { useRouter } from 'next/navigation' interface Drop { id: number item: string + description?: string | null size: number fill: number unit: string ppu: number + price_chf?: number | null + price_eur?: number | null + wholesale_price_chf?: number | null + wholesale_price_eur?: number | null image_url: string | null images?: string[] created_at: string @@ -42,9 +47,14 @@ export default function DropsManagementPage() { const [selectedDropId, setSelectedDropId] = useState(null) const [formData, setFormData] = useState({ item: '', + description: '', size: '', unit: 'g', ppu: '', + priceChf: '', + priceEur: '', + wholesalePriceChf: '', + wholesalePriceEur: '', imageUrl: '', startTime: '', }) @@ -88,9 +98,14 @@ export default function DropsManagementPage() { setEditingDrop(drop) setFormData({ item: drop.item, + description: drop.description || '', size: drop.size.toString(), unit: drop.unit, ppu: drop.ppu.toString(), + priceChf: drop.price_chf?.toString() || '', + priceEur: drop.price_eur?.toString() || '', + wholesalePriceChf: drop.wholesale_price_chf?.toString() || '', + wholesalePriceEur: drop.wholesale_price_eur?.toString() || '', imageUrl: drop.image_url || '', startTime: drop.start_time ? new Date(drop.start_time).toISOString().slice(0, 16) : '', }) @@ -157,9 +172,14 @@ export default function DropsManagementPage() { headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ item: formData.item, + description: formData.description || null, size: parseInt(formData.size), unit: formData.unit, ppu: parseInt(formData.ppu), + priceChf: formData.priceChf ? parseFloat(formData.priceChf) : null, + priceEur: formData.priceEur ? parseFloat(formData.priceEur) : null, + wholesalePriceChf: formData.wholesalePriceChf ? parseFloat(formData.wholesalePriceChf) : null, + wholesalePriceEur: formData.wholesalePriceEur ? parseFloat(formData.wholesalePriceEur) : null, imageUrl: finalImageUrls[0] || null, // Keep first image for legacy support startTime: formData.startTime || null, }), @@ -312,9 +332,14 @@ export default function DropsManagementPage() { headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ item: formData.item, + description: formData.description || null, size: parseInt(formData.size), unit: formData.unit, ppu: parseInt(formData.ppu), + priceChf: formData.priceChf ? parseFloat(formData.priceChf) : null, + priceEur: formData.priceEur ? parseFloat(formData.priceEur) : null, + wholesalePriceChf: formData.wholesalePriceChf ? parseFloat(formData.wholesalePriceChf) : null, + wholesalePriceEur: formData.wholesalePriceEur ? parseFloat(formData.wholesalePriceEur) : null, imageUrl: finalImageUrls[0] || null, // Keep first image for legacy support startTime: formData.startTime || null, }), @@ -350,9 +375,14 @@ export default function DropsManagementPage() { alert('Drop created successfully') setFormData({ item: '', + description: '', size: '', unit: 'g', ppu: '', + priceChf: '', + priceEur: '', + wholesalePriceChf: '', + wholesalePriceEur: '', imageUrl: '', startTime: '', }) @@ -434,9 +464,14 @@ export default function DropsManagementPage() { // Reset form when canceling setFormData({ item: '', + description: '', size: '', unit: 'g', ppu: '', + priceChf: '', + priceEur: '', + wholesalePriceChf: '', + wholesalePriceEur: '', imageUrl: '', startTime: '', }) @@ -492,6 +527,25 @@ export default function DropsManagementPage() { }} /> +
+ +