040 - Admin Firebase image upload (Court & Product multi)
- Tanggal: 2026-08-20
- Chat/topik: Semua image admin ke Firebase Storage; Court & Product multi-foto
Ringkasan perubahan
- Generalize Firebase upload helper (
uploadImage+ folder allowlist). - Shared
EntityPhotosPanelfor Court + Product (main + gallery). ImageUploadFieldfor Promo, Space, Coach, Class, Event (single photo).- Schema:
products.image_url,products.gallery,events.image_url(migration027). - mpc-be Product exposes
galleryin API; member apps unchanged (still useimage_url).
Impact bisnis
Admin dapat mengelola foto katalog tanpa paste URL atau rsync ke disk BE. Product siap multi-foto di DB/API; UI member gallery ditunda.
Epic / User stories
- Epic: Admin media management via Firebase Storage
- US: Sebagai admin, saya ingin upload beberapa foto untuk court dan product, agar member melihat foto utama yang benar.
- US: Sebagai admin, saya ingin upload satu foto untuk promo/space/coach/class/event tanpa menempel URL.
User terdampak
Admin (langsung). Member apps (foto muncul setelah URL diisi; tidak ada UI gallery product baru).
Aplikasi terdampak
- mpc-admin — PERLU (v0.14)
- mpc-be — PERLU (v1.11: Product.gallery + api_contract)
- mpc-android / mpc-ios / mpc-web — TIDAK sekarang (tetap
image_url) - mpc-be-pos / mpc-pos / owner / ksr-sync / crm — TIDAK
Perubahan schema
products.image_urltextproducts.galleryjsonb default[]events.image_urltext (idempotent)- File:
mpc-dev/docs/schema/migration/027-product-image-gallery.md
Perubahan kode
- Admin:
uploads.ts,firebaseAdmin.ts,EntityPhotosPanel,ImageUploadField,ProductPhotosPanel, form/actions wiring, Prisma Product/Event - BE:
inventory/entity.goGallery field;api_contract.md