# 3. Service Catalog & Pricing

← Business Requirements

## (a) Business requirements #

- Admin defines the catalog skeleton: top-level service categories (e.g., مراقبت از سالمند / Elderly Care, مراقبت پس از جراحی / Post-Surgery Recovery, مراقبت از نوزاد / Infant Care, مدیریت بیماری مزمن / Chronic Illness Management) and configurable option dimensions as admin-managed option groups (e.g., تعداد بیمار / patient count, نوع شیفت / shift type) each with concrete option values (e.g., ۱ نفر, ۲ نفر, شبانه‌روزی). Admin can add new dimensions without a schema change.
- Each nurse defines their own offerings as variants. A variant is the atomic bookable unit: a category + a chosen combination of option values + the nurse's own price and price unit. A nurse may have many variants per category, one per combination they choose to offer and price independently.
- Price units must support the real shapes of home nursing: `per_hour`, `per_session`, `per_half_day`, `per_day`, and `per_24h` (شبانه‌روزی / live-in). For hourly variants an estimated duration helps the customer estimate total cost.
- The variant `display_name` auto-generates from option labels but is nurse-editable. Nurses can deactivate (not delete) a variant; deactivated variants cannot be booked.
- Catalog and prices are snapshotted onto the booking at booking time (`variant_snapshot_json`) so historical records survive later edits.

## (b) Iran-specific considerations #

- Iranian competitors sell exactly these shapes — hourly / daily / 24-hour (شبانه‌روزی) shifts and multi-day packages — so `per_24h` and `per_day` are first-class, not edge cases.
- Competitor pricing is opaque and "توافقی" (negotiable); transparent, upfront, nurse-set pricing is a deliberate differentiator families value.
- All catalog tables carry `name_fa` / `name_en` pairs (Persian primary).

## (c) MVP vs DEFERRED #

- MVP: admin categories + option groups/values; nurse variants with own price + price unit across all five units; activate/deactivate; snapshotting.
- DEFERRED: holiday/surge pricing rules; a lighter "companionship / daily-living" tier (modeled as a future category); dynamic/tiered commission per category.

## (d) Supporting database entities #

`service_categories`, `service_option_groups`, `service_option_values`, `nurse_service_variants` (carries `price`, `price_unit`), `nurse_service_variant_options`.

> Related: Data model — Services & Pricing.

↑ Back to top