# Master Barang

- Module key: `MasterBarang`
- Category: `Project/Logistik`
- Path: `app/Modules/MasterBarang`

## Ringkasan

Master Barang berada di kategori Project/Logistik. Modul ini memiliki 11 definisi route, 1 controller, 2 model, dan 1 view. Database module terdeteksi pada tabel: `master_barangs`, `master_barang_merge_logs`.

## Flowchart

```mermaid
flowchart TD
    A[User / Operator] --> B[Menu Master Barang]
    B --> C[Routes: 11]
    C --> D[Controllers: 1]
    D --> E[Views: 1]
    D --> F[(Tables: 2<br/>master_barangs<br/>master_barang_merge_logs)]
    D --> G[Validation / Business Rules]
    G --> F
    F --> H[Report / Export / Audit]
```


## Routes

- `Route::middleware(['auth', 'ip.block', 'menu.access'])->group(function () {`  
  File: `app/Modules/MasterBarang/routes/web.php`
- `Route::prefix('master-barang')->name('master_barang.')->group(function () {`  
  File: `app/Modules/MasterBarang/routes/web.php`
- `Route::get('/', [MasterBarangController::class, 'index'])->name('index');`  
  File: `app/Modules/MasterBarang/routes/web.php`
- `Route::get('data', [MasterBarangController::class, 'data'])->name('data');`  
  File: `app/Modules/MasterBarang/routes/web.php`
- `Route::get('similar', [MasterBarangController::class, 'similar'])->name('similar');`  
  File: `app/Modules/MasterBarang/routes/web.php`
- `Route::get('merge-preview', [MasterBarangController::class, 'mergePreview'])->name('merge_preview');`  
  File: `app/Modules/MasterBarang/routes/web.php`
- `Route::get('merge-logs', [MasterBarangController::class, 'mergeLogs'])->name('merge_logs');`  
  File: `app/Modules/MasterBarang/routes/web.php`
- `Route::post('merge', [MasterBarangController::class, 'merge'])->name('merge');`  
  File: `app/Modules/MasterBarang/routes/web.php`
- `Route::post('/', [MasterBarangController::class, 'store'])->name('store');`  
  File: `app/Modules/MasterBarang/routes/web.php`
- `Route::put('{id}', [MasterBarangController::class, 'update'])->name('update');`  
  File: `app/Modules/MasterBarang/routes/web.php`
- `Route::delete('{id}', [MasterBarangController::class, 'destroy'])->name('destroy');`  
  File: `app/Modules/MasterBarang/routes/web.php`

## Controllers

- `app/Modules/MasterBarang/Http/Controllers/MasterBarangController.php`

## Models

- `app/Modules/MasterBarang/Models/BarangMergeLogModel.php`
- `app/Modules/MasterBarang/Models/BarangModel.php`

## Views

- `app/Modules/MasterBarang/Resources/views/index.blade.php`

## Database / Migration

### `master_barangs`
- Actions: `create`
- Columns: 5
  - `code:string`
  - `name:string`
  - `default_satuan_id:foreignId`
  - `description:text`
  - `is_active:boolean`
- Migrations:
  - `app/Modules/MasterBarang/Database/migrations/2026_02_19_191000_create_master_barangs_table.php`
### `master_barang_merge_logs`
- Actions: `create`
- Columns: 7
  - `source_barang_id:foreignId`
  - `source_barang_id:foreign`
  - `target_barang_id:foreignId`
  - `target_barang_id:foreign`
  - `merged_by:unsignedBigInteger`
  - `summary_json:json`
  - `notes:text`
- Migrations:
  - `app/Modules/MasterBarang/Database/migrations/2026_03_25_180000_create_master_barang_merge_logs_table.php`
