# Model: Specialty

**Table**: `clinic_specialties` (new)

## Purpose

The global, platform-wide list of medical specialties (bariatric surgery, internal medicine,
endocrinology, ...). Independent of any branch — per the brief's hierarchy, a specialty is a
classification attached to a *doctor*, never owned by a branch.

## Fields

| Column | Type | Constraints | Notes |
|---|---|---|---|
| `id` | bigint | PK | |
| `name` | json / string | translatable, matching `PaymentGateway.name` convention if the ERP's translation package is in use here too — confirm during Phase 1 build | |
| `slug` | string | unique | |
| `is_active` | boolean | default true | inactive specialties are hidden from new-doctor forms and patient search, but existing doctors keep their link |
| `created_by` / `updated_by` | bigint | `foreignId(...)->nullable()->constrained('admins')->nullOnDelete()` | |
| `created_at` / `updated_at` | timestamp | | |

## Relationships

| Relation | Type | Target |
|---|---|---|
| `doctors()` | `hasMany` | `Clinic\Doctor` |

## Decisions

- Managed by Super Admin only (`clinic.specialties.*` permissions) — Clinic Admin can view but
  not create/edit/delete, since specialties are a platform-wide taxonomy, not per-clinic.
