generated sotries

This commit is contained in:
Naser Mansour
2025-12-20 21:04:23 +02:00
parent d889b24f12
commit 8f95089814
65 changed files with 9501 additions and 0 deletions
@@ -0,0 +1,68 @@
# Story 6.4: Data Export - User Lists
## Epic Reference
**Epic 6:** Admin Dashboard
## User Story
As an **admin**,
I want **to export user data in CSV and PDF formats**,
So that **I can generate reports and maintain offline records**.
## Acceptance Criteria
### Export Options
- [ ] Export all users
- [ ] Export individual clients only
- [ ] Export company clients only
### Filters
- [ ] Date range (created)
- [ ] Status (active/deactivated)
### CSV Export Includes
- [ ] Name, email, phone
- [ ] User type
- [ ] National ID / Company registration
- [ ] Status
- [ ] Created date
### PDF Export Includes
- [ ] Same data with professional formatting
- [ ] Libra branding header
- [ ] Generation timestamp
### Bilingual
- [ ] Column headers based on admin language
## Technical Notes
Use league/csv for CSV and barryvdh/laravel-dompdf for PDF.
```php
public function exportCsv(): StreamedResponse
{
return response()->streamDownload(function () {
$csv = Writer::createFromString();
$csv->insertOne([__('export.name'), __('export.email'), ...]);
User::whereIn('user_type', ['individual', 'company'])
->cursor()
->each(fn($user) => $csv->insertOne([
$user->name,
$user->email,
// ...
]));
echo $csv->toString();
}, 'users-export.csv');
}
```
## Definition of Done
- [ ] CSV export works with all filters
- [ ] PDF export works with branding
- [ ] Large datasets handled efficiently
- [ ] Tests pass
## Estimation
**Complexity:** Medium | **Effort:** 3-4 hours