# Task 08: Digital Library

## Goal
Auto-grant digital access. Serve files via signed URLs only.

## Files
- `app/Services/Ecommerce/DigitalAccessService.php`
- `app/Listeners/GrantDigitalAccess.php`
- `app/Http/Controllers/Api/DigitalLibraryController.php`
- `app/Policies/DigitalAccessPolicy.php`
- `resources/views/library/index.blade.php`

## Steps
1. `DigitalAccessService`: `shouldGrant()`, `grantForOrder()`, `getLibrary()`, `generateDownloadUrl()`
2. `GrantDigitalAccess` listener → fires on `OrderStatusUpdated`
3. `DigitalLibraryController`: `index()`, `download()` (policy-guarded)
4. Never return `file_path` raw
5. Register routes under `auth`
