# Flowchart — `brands`

> Produced by the Reversa **Archaeologist** (phase: excavation) · doc_level: `complete`
> Generated on 2026-09-17

**Confidence scale:** 🟢 CONFIRMED · 🟡 INFERRED · 🔴 GAP

## `BrandController` — reference-data editor (Encore\Admin scaffolding) 🟢

```mermaid
flowchart TD
    A["GET settings/brand (index)"] --> B["Admin content: two columns"]
    B --> C["left: grid()"]
    B --> D["right: 'new brand' widget form<br/>name (required), description<br/>POST settings/brand"]
    C --> E["columns: id, name, description"]
    E --> F["disable create/export/selector/filter/pagination"]
    F --> G["row actions:"]
    G --> H["disableDelete() on ALL rows"]
    G --> I{"row key == 1?"}
    I -->|yes| J["disableEdit()<br/>🟢 confirmed default brand"]
    I -->|no| K["edit allowed"]
```

**Notes:**
- `store`/`update`/`destroy` are provided by the Encore\Admin `ModelForm` trait and driven by `form()` (fields `name` required, `description`); only `index`/`edit`/`grid`/`form` are overridden. 🟢
- `Brand::products()` = `hasMany(Product)` via `products.brand_id` (a required FK). Brands are never UI-deletable, and id 1 is edit-locked — confirmed mandatory default brand. 🟢
- No custom algorithms or lifecycle hooks.
