# Printer

- Module key: `Printer`
- Category: `General`
- Path: `app/Modules/Printer`

## Ringkasan

Printer berada di kategori General. Modul ini memiliki 9 definisi route, 1 controller, 1 model, dan 2 view. Database module terdeteksi pada tabel: `printer_devices`.

## Flowchart

```mermaid
flowchart TD
    A[User / Operator] --> B[Menu Printer]
    B --> C[Routes: 9]
    C --> D[Controllers: 1]
    D --> E[Views: 2]
    D --> F[(Tables: 1<br/>printer_devices)]
    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/Printer/routes/web.php`
- `Route::prefix('printer')->name('printer.')->group(function () {`  
  File: `app/Modules/Printer/routes/web.php`
- `Route::get('/', [PrinterController::class, 'index'])->name('index');`  
  File: `app/Modules/Printer/routes/web.php`
- `Route::get('data', [PrinterController::class, 'data'])->name('data');`  
  File: `app/Modules/Printer/routes/web.php`
- `Route::post('/', [PrinterController::class, 'store'])->name('store');`  
  File: `app/Modules/Printer/routes/web.php`
- `Route::put('{id}', [PrinterController::class, 'update'])->name('update');`  
  File: `app/Modules/Printer/routes/web.php`
- `Route::delete('{id}', [PrinterController::class, 'destroy'])->name('destroy');`  
  File: `app/Modules/Printer/routes/web.php`
- `Route::post('{id}/set-default', [PrinterController::class, 'setDefault'])->name('set_default');`  
  File: `app/Modules/Printer/routes/web.php`
- `Route::get('{id}/test-print', [PrinterController::class, 'test_print'])->name('test_print');`  
  File: `app/Modules/Printer/routes/web.php`

## Controllers

- `app/Modules/Printer/Http/Controllers/PrinterController.php`

## Models

- `app/Modules/Printer/Models/PrinterDeviceModel.php`

## Views

- `app/Modules/Printer/Resources/views/index.blade.php`
- `app/Modules/Printer/Resources/views/test-print.blade.php`

## Database / Migration

### `printer_devices`
- Actions: `create`
- Columns: 11
  - `code:string`
  - `name:string`
  - `driver_type:enum`
  - `paper_type:enum`
  - `paper_width_mm:decimal`
  - `is_continuous:boolean`
  - `copies:unsignedSmallInteger`
  - `endpoint:string`
  - `notes:text`
  - `is_default:boolean`
  - `is_active:boolean`
- Migrations:
  - `app/Modules/Printer/Database/migrations/2026_03_05_120000_create_printer_devices_table.php`
