# SUPER ADMIN DASHBOARD - TASK TRACKING

> **Mô tả:** Màn hình quản trị hệ thống SaaS - Quản lý toàn bộ cửa hàng, người dùng, subscription, và cấu hình hệ thống
> **Ngày bắt đầu:** 28/12/2024
> **Trạng thái:** 🔄 Đang thực hiện

---

## 📊 TỔNG QUAN

Super Admin là chủ sở hữu hệ thống SaaS, có quyền truy cập và quản lý toàn bộ:
- Tất cả cửa hàng (shops) đăng ký trên hệ thống
- Quản lý subscription và thanh toán
- Thống kê tổng quan toàn hệ thống
- Cấu hình hệ thống (gói subscription, payment gateway...)

---

## 🏗️ KIẾN TRÚC

### Backend Structure
```
app/Http/Controllers/Api/V1/Admin/         # Admin API Controllers
├── AdminAuthController.php                 # Đăng nhập Super Admin
├── AdminDashboardController.php            # Dashboard statistics
├── AdminShopController.php                 # Quản lý shops
├── AdminUserController.php                 # Quản lý users toàn hệ thống
├── AdminSubscriptionController.php         # Quản lý subscriptions
├── AdminPackageController.php              # Quản lý gói cước
├── AdminPaymentController.php              # Lịch sử thanh toán
├── AdminSettingController.php              # Cài đặt hệ thống
└── AdminReportController.php               # Báo cáo toàn hệ thống
```

### Frontend Structure
```
src/app/features/admin/                     # Super Admin feature module
├── dashboard/                              # Dashboard tổng quan
├── shops/                                  # Quản lý tất cả shops
│   ├── shop-list/                         # Danh sách shops
│   ├── shop-detail/                       # Chi tiết shop
│   └── shop-form/                         # Tạo/sửa shop
├── users/                                  # Quản lý users toàn hệ thống
│   ├── user-list/                         # Danh sách users
│   └── user-detail/                       # Chi tiết user
├── subscriptions/                          # Quản lý subscriptions
│   ├── subscription-list/                 # DS thanh toán
│   └── package-management/                # Quản lý gói cước
├── payments/                               # Lịch sử thanh toán
├── reports/                                # Báo cáo hệ thống
└── settings/                              # Cài đặt hệ thống
```

---

## 📋 DANH SÁCH TÍNH NĂNG

### 🎯 PHASE 1: AUTHENTICATION & LAYOUT

#### 1.1 Backend - Admin Authentication
- [x] Tạo bảng `admins` (tách biệt với users) ✅
  ```
  - id
  - name
  - email
  - password
  - role (super_admin, support)
  - avatar
  - is_active
  - last_login_at
  - created_at, updated_at
  ```
- [x] Tạo `Admin` model ✅
- [x] Tạo `AdminAuthController` ✅
  - [x] `login()` - Đăng nhập admin ✅
  - [x] `logout()` - Đăng xuất ✅
  - [x] `me()` - Thông tin admin hiện tại ✅
  - [x] `updateProfile()` - Cập nhật profile ✅
  - [x] `changePassword()` - Đổi mật khẩu ✅
- [x] Tạo middleware `AdminAuth` ✅
- [x] Tạo AdminSeeder (default super admin account) ✅

#### 1.2 Frontend - Admin Layout & Auth
- [x] Tạo `AdminLayoutComponent` (sidebar, header, content) ✅
- [x] Tạo `AdminLoginComponent` ✅
- [x] Tạo `AdminAuthService` ✅
- [x] Tạo `adminAuthGuard` ✅
- [x] Tạo Admin routes (`/admin/*`) ✅
- [x] Design sidebar navigation cho admin ✅

---

### 🏪 PHASE 2: QUẢN LÝ CỬA HÀNG (SHOPS)

#### 2.1 Backend - Shop Management
- [x] Tạo `AdminShopController` ✅
  - [x] `index()` - Danh sách shops với filter/search/pagination ✅
  - [x] `show($id)` - Chi tiết 1 shop ✅
  - [x] `store()` - Tạo shop mới (kèm owner) ✅
  - [x] `update($id)` - Cập nhật thông tin shop ✅
  - [x] `toggleActive($id)` - Kích hoạt/vô hiệu hóa shop ✅
  - [x] `delete($id)` - Xóa shop (soft delete) ✅
  - [x] `extendSubscription($id)` - Gia hạn subscription thủ công ✅
  - [x] `statistics($id)` - Thống kê của shop ✅
  - [x] `loginAsShop($id)` - Đăng nhập vào shop (impersonate) ✅
- [x] Tạo `AdminShopService` ✅
- [x] Tạo Request validations ✅
- [x] Tạo API Resources ✅

#### 2.2 Frontend - Shop Management UI
- [x] Tạo `ShopListComponent` ✅
  - [x] Hiển thị danh sách shops (table) ✅
  - [x] Filter: trạng thái (active/inactive/expired), ngày tạo, search ✅
  - [x] Sorting theo các cột ✅
  - [x] Pagination ✅
  - [x] Quick actions: toggle active, extend, view details ✅
- [x] Tạo `ShopDetailComponent` ✅
  - [x] Tab: Thông tin cơ bản ✅
  - [x] Tab: Thống kê (orders, revenue, customers, products) ✅
  - [x] Tab: Users của shop ✅
  - [x] Tab: Branches của shop ✅
  - [x] Tab: Lịch sử thanh toán subscription ✅
  - [x] Button: Login as Shop (impersonate) ✅
- [x] Tạo `ShopFormComponent` ✅
  - [x] Form tạo shop mới (với owner account) ✅
  - [x] Form edit shop ✅
  - [x] Upload logo ✅
- [x] Tạo `AdminShopService` ✅

---

### 👥 PHASE 3: QUẢN LÝ USERS TOÀN HỆ THỐNG

#### 3.1 Backend - User Management
- [x] Tạo `AdminUserController` ✅
  - [x] `index()` - Danh sách tất cả users (across all shops) ✅
  - [x] `show($id)` - Chi tiết user ✅
  - [x] `update($id)` - Cập nhật user ✅
  - [x] `toggleActive($id)` - Kích hoạt/vô hiệu hóa ✅
  - [x] `resetPassword($id)` - Reset password ✅
  - [x] `delete($id)` - Xóa user ✅
- [x] Tạo `AdminUserService` ✅
- [x] Tạo Request validations ✅
- [x] Tạo API Resources ✅

#### 3.2 Frontend - User Management UI
- [x] Tạo `UserListComponent` ✅
  - [x] Danh sách users với filter theo shop, role, trạng thái ✅
  - [x] Search theo tên, email, phone ✅
  - [x] Pagination ✅
  - [x] Reset password modal ✅
  - [x] Delete modal ✅
- [x] Tạo `UserDetailComponent` ✅
  - [x] Thông tin user ✅
  - [x] Thông tin shop/branch ✅
  - [x] Hoạt động gần đây (orders, shifts, transactions) ✅
- [x] Tạo `AdminUserService` ✅

---

### 💎 PHASE 4: QUẢN LÝ SUBSCRIPTION & PACKAGES

#### 4.1 Backend - Subscription Management
- [x] Tạo `AdminSubscriptionController` ✅
  - [x] `index()` - Danh sách subscriptions (shops + expiry info) ✅
  - [x] `overview()` - Thống kê subscription ✅
  - [x] `expiring()` - Shops sắp hết hạn ✅
  - [x] `expired()` - Shops đã hết hạn ✅
  - [x] `extend($shopId)` - Gia hạn thủ công ✅
  - [x] `grantTrial($shopId, $days)` - Cấp thêm ngày dùng thử ✅
  - [x] `transactions()` - Lịch sử giao dịch ✅
- [x] Package Management (trong cùng controller) ✅
  - [x] CRUD cho subscription packages ✅
  - [x] Toggle active package ✅
- [x] Tạo `AdminSubscriptionService` ✅
- [x] Tạo Request validations (StorePackageRequest, UpdatePackageRequest, GrantTrialRequest) ✅
- [x] Tạo API Resources (AdminSubscriptionResource, AdminPackageResource, AdminTransactionResource) ✅

#### 4.2 Frontend - Subscription Management UI
- [x] Tạo `SubscriptionListComponent` ✅
  - [x] Overview stats cards ✅
  - [x] Danh sách shops với thông tin subscription ✅
  - [x] Tabs: All, Expiring Soon, Expired ✅
  - [x] Filter by status, search ✅
  - [x] Quick extend modal ✅
- [x] Tạo `PackageListComponent` ✅
  - [x] CRUD gói cước với modal form ✅
  - [x] Chỉnh giá, features, duration ✅
  - [x] Toggle active ✅
- [x] Tạo `AdminSubscriptionService` ✅

---

### 💰 PHASE 5: LỊCH SỬ THANH TOÁN

#### 5.1 Backend - Payment History
- [x] Tạo `AdminPaymentController` ✅
  - [x] `index()` - Lịch sử tất cả thanh toán ✅
  - [x] `show($id)` - Chi tiết giao dịch ✅
  - [x] `statistics()` - Thống kê revenue theo thời gian ✅
  - [x] `export()` - Export to CSV ✅
  - [x] `revenueChart()` và `monthlyRevenue()` for charts ✅

#### 5.2 Frontend - Payment History UI
- [x] Tạo `PaymentListComponent` ✅
  - [x] Danh sách thanh toán ✅
  - [x] Filter theo ngày, shop, trạng thái, package ✅
  - [x] Search và Pagination ✅
  - [x] Stats Cards (Revenue, Growth, Pending) ✅
  - [x] Export to CSV functionality ✅
- [ ] Tạo `PaymentStatisticsComponent`
  - [ ] Biểu đồ revenue theo ngày/tháng
  - [ ] Top shops by payment
  - [ ] Payment methods breakdown

---

### 📊 PHASE 6: DASHBOARD & REPORTS

#### 6.1 Backend - Admin Dashboard
- [x] Tạo `AdminDashboardController` ✅
  - [x] `overview()` - Thống kê tổng quan ✅
    - Tổng số shops (active, inactive, expired)
    - Tổng số users
    - Tổng revenue từ subscriptions
    - New registrations (today, this week, this month)
  - [x] `recentActivities()` - Hoạt động gần đây ✅
  - [x] `charts()` - Dữ liệu cho biểu đồ ✅
- [x] Tạo `AdminReportController` ✅
  - [x] `shopGrowth()` - Báo cáo tăng trưởng shops ✅
  - [x] `revenueReport()` - Báo cáo doanh thu theo gói ✅
  - [x] `usageReport()` - Báo cáo sử dụng (active, inactive, expiring) ✅

#### 6.2 Frontend - Dashboard UI
- [x] Tạo `DashboardComponent` ✅
  - [x] Cards: Total shops, Active shops, Expired shops, Total users ✅
  - [x] Cards: Revenue today, Revenue this month, Revenue total ✅
  - [x] Chart: New registrations trend (dùng chart.js) ✅
  - [x] Chart: Revenue trend (dùng chart.js) ✅
  - [x] Table: Recent registrations ✅
  - [x] Table: Expiring soon shops ✅
- [x] Tạo `AdminDashboardService` ✅
- [x] Tạo `ReportsDashboardComponent` (Detailed Reports) ✅
  - [x] Shop Growth Chart ✅
  - [x] Expiry Distribution Pie Chart ✅
  - [x] Monthly Revenue Breakdown ✅
- [ ] Table: Recent payments
- [ ] Tạo báo cáo chi tiết

---

### ⚙️ PHASE 7: CÀI ĐẶT HỆ THỐNG

#### 7.1 Backend - System Settings
- [x] Tạo bảng `system_settings` (key-value store) ✅
- [x] Tạo `SystemSetting` model ✅
- [x] Tạo `AdminSettingController` ✅
  - [x] `index()` - Lấy tất cả settings ✅
  - [x] `update()` - Cập nhật settings theo nhóm ✅
  - [x] `store()` - Tạo setting mới ✅

#### 7.2 Frontend - Settings UI
- [x] Tạo `SettingsDashboardComponent` với các tabs: ✅
  - [x] Tab General: Site name, support email, maintenance mode ✅
  - [x] Tab Payment: Bank info, currency, enable types ✅
  - [x] Tab Subscription: Trial days, grace period ✅
- [x] Tạo `AdminSettingService` ✅
  - [ ] Tab Payment: SePay configuration
  - [ ] Tab Subscription: Default trial days, grace period
  - [ ] Tab Notifications: Email settings
  - [ ] Tab Maintenance: Enable/disable maintenance mode

---

### 🔔 PHASE 8: NOTIFICATIONS & AUDIT LOG

#### 8.1 Backend
- [x] Tạo bảng `admin_activity_logs` ✅
  - [x] admin_id, action, target_type, target_id, details, ip, created_at ✅
- [x] Tạo `AdminActivityLog` model ✅
- [x] Auto-log admin actions (Integrated in Shop & User controllers) ✅
- [x] Tạo API `AdminLogController` để xem activity logs ✅

#### 8.2 Frontend
- [x] Hiển thị activity logs (`LogListComponent`) ✅
- [x] Filter theo admin, action type, date range ✅
- [x] Pagination ✅

---

## 🗓️ PRIORITY ORDER (Thứ tự ưu tiên)

1. **Phase 1**: Authentication & Layout (Bắt buộc đầu tiên)
2. **Phase 2**: Quản lý Shops (Core feature)
3. **Phase 6**: Dashboard (Cần xem tổng quan)
4. **Phase 4**: Subscription Management
5. **Phase 5**: Payment History
6. **Phase 3**: User Management
7. **Phase 7**: System Settings
8. **Phase 8**: Notifications & Audit Log

---

## 📝 CHECKLIST HOÀN THÀNH

### Backend
- [ ] Migration cho bảng `admins`
- [ ] Migration cho bảng `system_settings`
- [ ] Migration cho bảng `admin_activity_logs`
- [ ] Tất cả Admin Controllers
- [ ] Tất cả Admin Services
- [ ] Request validations
- [ ] API Resources
- [ ] API Routes (`routes/api.php` - admin prefix)
- [ ] Middleware AdminAuth
- [ ] AdminSeeder

### Frontend
- [ ] Admin Layout
- [ ] Admin Login
- [ ] Admin Auth Service & Guard
- [ ] Admin Routes
- [ ] Tất cả Admin Components
- [ ] Admin Services
- [ ] Translations (vi, en)

---

## 📅 CHANGELOG

| Ngày | Nội dung | Phase |
|------|----------|-------|
| 28/12/2024 | Khởi tạo task-admin.md | - |
| 28/12/2024 | Hoàn thành Backend Shop Management: AdminShopController, AdminShopService, Request validations, API Resources | Phase 2 |
| 28/12/2024 | Hoàn thành Frontend Shop Management: ShopListComponent, ShopDetailComponent, ShopFormComponent, AdminShopService | Phase 2 |
| 28/12/2024 | Hoàn thành Backend User Management: AdminUserController, AdminUserService, Request validations, API Resources | Phase 3 |
| 28/12/2024 | Hoàn thành Frontend User Management: UserListComponent, UserDetailComponent, AdminUserService | Phase 3 |
| 28/12/2024 | Hoàn thành Backend Subscription Management: AdminSubscriptionController, AdminSubscriptionService, Request validations, API Resources | Phase 4 |
| 28/12/2024 | Hoàn thành Frontend Subscription Management: SubscriptionListComponent, PackageListComponent, AdminSubscriptionService | Phase 4 |
| 28/12/2024 | Dashboard đã có sẵn: AdminDashboardController, AdminDashboardService, DashboardComponent với stats cards và tables | Phase 6 |
| 28/12/2024 | Hoàn thành Backend Payment History: AdminPaymentController, AdminPaymentService, routes | Phase 5 |
| 28/12/2024 | Hoàn thành Frontend Payment History: PaymentListComponent với stats, filters, export | Phase 5 |
| 28/12/2024 | Hoàn thành đầy đủ Phase 6 (Dashboard & Reports): Charts integration, ReportController, ReportDashboardUI | Phase 6 |
| 28/12/2024 | Hoàn thành Phase 7 (System Settings): Backend Migration/Model/Controller & Frontend SettingsDashboard | Phase 7 |

---

*Cập nhật lần cuối: 28/12/2024 14:30*





