Skip to content

Brokerage property publish checklist ​

Operational steps to move a property from staff entry to public production across aldilaijanre (web) and aldilaijankhobara-app (Flutter). Both apps write to the same Supabase project (jrsgosnnyjonxaesqtln).

Prerequisites ​

  • Staff account with brokerage write access
  • Property row exists in properties / properties_base
  • al_ard = 'available' (English machine key β€” required after WS3)

Checklist ​

1. Complete property data ​

  • [ ] Owner linked (owner_client_id or name fields)
  • [ ] Location: governorate, area, block/plot (PACI-backed where possible)
  • [ ] Specs: type (al_wada), category, size (al_misaha), condition
  • [ ] Pricing: al_sier / owner_price / market_estimate + display_price_mode
  • [ ] Listing arrangement: mubashir, al_maktab, commission in extended_details

2. Upload media ​

  • [ ] Attach photos/docs via property_attachments (web Step Media or Flutter detail screen)
  • [ ] Optional: virtual tour URL, external video links

3. Enable catalog visibility ​

  • [ ] Set show_in_catalog = true
  • [ ] Confirm al_ard = 'available'
  • [ ] Optional: show_location_in_catalog = true for block/plot/coords on public page
  • [ ] Optional: show_in_splash, assign bundle_id, set marketing_method

4. Verify public catalog RPC ​

Run in Supabase SQL editor (or REST RPC):

sql
SELECT id, al_mintaqa, al_ard, al_sier
FROM get_catalog_properties()
WHERE id = '<property-uuid>';

Expected: one row returned. If empty, check:

SymptomFix
show_in_catalog is falseToggle catalog on in web Properties table or Flutter Marketing step
al_ard is not availableSet listing status to Available
Migration not appliedApply 20260630110000_fix_catalog_al_ard_available_keys.sql

5. Downstream channels (optional) ​

ChannelActionSurface
Public catalog pageAuto β€” reads get_catalog_properties()Web /catalog, Flutter browse
Public detailOpen /p/:id or Flutter public property screenRespects display_price_mode
Share text / WhatsApp linkRequires catalog-live gateFlutter share sheet
WhatsApp Meta catalogStaff sync from webwhatsapp_catalog_sync (web-only)
Promo videoStaff triggerproperty_promo_videos + assemble-promo edge fn
Property bundleAssign bundle_id, verify get_public_bundle(share_token)Web bundle share link

Dual-client entry paths ​

StepWeb (aldilaijanre)Flutter (aldilaijankhobara-app)
Create/edit/brokerage/properties β†’ PropertyFormDialogproperty_form_screen.dart
Catalog toggleProperties table or detail headerMarketing step or detail actions
MediaStep Media (wizard)Detail screen attachments
Workflow/brokerage/properties/workflow/:idLifecycle on detail screen

Schema parity ​

Listing arrangement fields must match between clients. See:

  • Web: src/lib/property/listingArrangement.ts
  • Flutter: lib/data/schemas/listing_arrangement.dart
  • Tests: test/features/properties/property_entry_parity_test.dart

Aldilaijan & Khobara Real Estate Platform