Business Form
What this screen is for
On the mobile app, the form used to create a new business or edit an existing business's profile: name, description, contact details, social links, address and map location, brand colour, profile background, showcase layout and gallery photos. The create action on My Businesses and the edit action on an existing business both open here. The panel's screen doing the same job is edit-only — the panel has no business-creation action at all — and is split into four sections: identity/contact details, profile and cover images, gallery, map location. The first three have their own save action; the gallery has none, because each photo added or removed there is written immediately.
When you would use this
A business owner comes to this form to enter a new business's concrete identity — its name, contact details, address — for the first time, or to update that information once the business's phone number, address, social links or visual identity changes.
Who sees it
In edit mode, on both mobile and the panel, only the user whose account matches the owner field on the business document can open the form. Create mode exists only on mobile, and is open to any signed-in user there because there is no owned document yet; the panel has no create mode at all.
Where it lives
The screen exists on both the mobile app and the web panel, but their scope is not equal. The mobile form covers both creating a new business and editing an existing one, and also carries the brand colour, profile background and showcase layout choices; every field but the gallery is written together by one Save action. The panel's counterpart is edit-only, has no business-creation action at all, carries no brand colour/background/showcase layout choice whatsoever, and uses three independent save actions instead of one — for the identity fields, the images, and the map location. If the business is suspended, all four of the panel's sections open read-only; the mobile form has no such restriction.
What you can do here
Name, phone and email
The business name, phone and email are required; description and website are optional. The phone must be 7 to 15 digits, and the email format is also validated.
Social links
Separate fields exist for Instagram, Facebook, X, TikTok, YouTube and WhatsApp; each is optional, and if filled in must be a valid link or handle.
Address, province/district and map location
Address text, province and district are all required; the district list narrows to match the chosen province. A coordinate can be set from the device's current location or by picking a point on the map; both attempt to fill the address fields automatically.
The panel only offers picking a point on the map — there is no option to use the device's current location; the chosen location does not fill the address fields automatically, and is written immediately by its own separate save button.
Brand colour, background and showcase layout
The accent colour used on the business's profile, its background pattern, and whether the gallery or the services list is shown first are all chosen here; the effect of each choice is shown in a preview before saving.
Mobile form only; the panel's counterpart has no such choice at all.
Profile and cover photos
A profile photo and a cover photo can be picked in both create and edit mode; both can only be replaced, never removed.
On mobile the picked photos are only uploaded by the main Save action, together with the rest of the business. On the panel the two are uploaded by their own separate save button, independent of the identity fields.
Gallery photos
The gallery only appears in edit mode, holds at most 10 photos, and each addition is written immediately.
On the panel, removing a photo asks for confirmation; on mobile it is removed immediately with no confirmation asked.
Save
Saving does not proceed while a required field is empty; while the save is in flight the button is disabled and shows a loading state, and a second tap is ignored.
On the panel there is no single Save: identity/contact details, images and map location are written by three independent save actions; saving one does not affect the others.
An image upload failure is reported separately
If the profile or cover photo fails to upload, the failure names which photo did not upload and the form stays open; the same pick can be retried.
On mobile this failure is seen after the business document has already been saved, because the images are part of the main save action. On the panel the images are uploaded by their own separate action, so the failure only affects that action, not the identity form.
Browser notifications
Turns push notifications for this browser on or off; once the browser has refused, the switch cannot turn it back on and instead says the setting now lives in the browser's own permissions.
Panel only; this preference belongs to the signed-in browser, not to the business, and has nothing to do with the rest of the form — it lives here because the panel has no personal-settings screen of its own.
What the server accepts and refuses
The server checks ownership only, not field formats
The Firestore rule opens a business update only to a document whose owner field matches the signed-in user; checks like a required name, a valid email format or a valid social link format are not part of the rule, they are enforced only by the forms themselves.
Admin-only fields cannot be changed by the owner's write
Fields like the suspension state, the suspension reason and the trust score can only be written by an admin; an update the owner submits from this form cannot change them, and the rule checks this separately on every single write.