# Business Type Catalog

> **Catalog + recommendation hints only.** Selecting a type never activates services.  
> ADR: [ADR-023](../architecture/adr/ADR-023.md)  
> Contract version: `business-type.v1`

---

## 1. BusinessTypeDefinition

| Field | Type | Meaning |
| --- | --- | --- |
| `business_type_code` | string | Stable code |
| `display_name` | string | |
| `display_name_fa` | string | Persian label |
| `description` | string | |
| `recommended_bundle_codes[]` | string[] | Soft recommendations |
| `recommended_service_identifiers[]` | string[] | |
| `recommended_module_keys[]` | string[] | |
| `recommended_feature_keys[]` | string[] | |
| `sort_order` | int | |
| `active` | bool | |

---

## 2. Catalog (canonical)

| Code | Name (EN) | Name (FA) | Recommended bundles | Recommended services (identifiers) |
| --- | --- | --- | --- | --- |
| `restaurant` | Restaurant | رستوران | `bundle.restaurant.starter`, `bundle.restaurant.growth` | hospitality, delivery, payment, loyalty, communication, experience, accounting |
| `cafe` | Cafe | کافه | `bundle.cafe.starter` | hospitality, payment, loyalty, communication, experience |
| `clinic` | Clinic | کلینیک / مطب | `bundle.clinic.starter` | experience, communication, accounting, payment, crm |
| `beauty_salon` | Beauty Salon | سالن زیبایی | `bundle.beauty.starter` | experience, crm, payment, communication, loyalty |
| `sports_center` | Sports Center | مرکز ورزشی | `bundle.sports.starter` | sports-center, payment, loyalty, communication, accounting |
| `retail_shop` | Retail Shop | فروشگاه | `bundle.retail.starter` | experience, payment, delivery, loyalty, accounting |
| `marketplace_seller` | Marketplace Seller | فروشنده مارکت‌پلیس | `bundle.marketplace.seller` | marketplace, payment, accounting, communication *(marketplace product future)* |
| `educational_center` | Educational Center | مرکز آموزشی | `bundle.education.starter` | experience, crm, communication, payment, accounting |
| `corporate_company` | Corporate Company | شرکت سازمانی | `bundle.corporate.crm` | crm, accounting, communication, identity-access |
| `professional_services` | Professional Services | خدمات حرفه‌ای | `bundle.professional.starter` | crm, accounting, experience, communication |
| `freelancer` | Freelancer | فریلنسر | `bundle.freelancer.starter` | experience, payment, accounting, communication |
| `manufacturer` | Manufacturer | تولیدکننده | `bundle.manufacturer.starter` | crm, accounting, communication |
| `wholesale` | Wholesale | عمده‌فروشی | `bundle.wholesale.starter` | crm, accounting, delivery, payment |
| `real_estate` | Real Estate | املاک | `bundle.real_estate.starter` | experience, crm, communication, payment |
| `government` | Government | دولتی | `bundle.government.starter` | experience, communication, accounting |
| `ngo` | NGO | سازمان مردم‌نهاد | `bundle.ngo.starter` | experience, crm, communication, accounting |
| `custom` | Custom | سفارشی | *(none by default)* | *(rule engine / admin)* |

### Module / feature recommendation notes

| Type | Example modules / features (non-activating) |
| --- | --- |
| restaurant | hospitality menu/order shells; delivery dispatch; payment L1; loyalty engage |
| clinic | experience site/forms; communication reminders; accounting books |
| sports_center | sports membership shells; payment; loyalty |
| retail_shop | experience storefront shells; payment; delivery |
| corporate_company | crm pipeline; accounting; communication |
| marketplace_seller | reserved marketplace seller pack — **product not implemented in this wave** |

---

## 3. Invariants

1. Catalog entries **recommend only**.
2. `custom` never auto-selects a bundle.
3. Codes are stable; display names may localize.
