Add standalone support ticket system with customer and admin interfaces
Replaces planned SupportPal integration with a built-in ticket system. Customer side: create tickets, reply, close. Admin side: manage all tickets with search/filters, staff replies, status updates. Includes 30 Pest tests (144 total, 775 assertions). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
42
TASKS.md
42
TASKS.md
@@ -61,7 +61,16 @@
|
||||
- [x] Create 9 marketing pages (Home, Products, VPS, Dedicated, Web, Game, Pricing, About, Contact)
|
||||
- [x] Create navigation configs (account.ts, admin.ts, marketing.ts)
|
||||
- [x] Set purple primary color (#7367F0) matching Vuexy demo
|
||||
- [x] All 53 tests passing, build clean
|
||||
- [x] All 114 tests passing, build clean (Phase 1-5 + Frontend + Notifications)
|
||||
|
||||
## Notifications System ✅
|
||||
- [x] Create notification classes (PaymentSucceeded, PaymentFailed, SubscriptionCreated, SubscriptionCancelled, ServiceProvisioned, InvoiceGenerated)
|
||||
- [x] Configure mail and database notification channels
|
||||
- [x] Wire notifications to relevant events (PaymentSucceeded, PaymentFailed, SubscriptionCreated, SubscriptionCancelled, ServiceProvisioned, InvoiceGenerated)
|
||||
- [x] Build NotificationBell component in Account and Admin layouts
|
||||
- [x] Implement NotificationController (index, markAsRead, markAllAsRead)
|
||||
- [x] FlashMessages supports info alerts
|
||||
- [x] Inertia shared data includes impersonation state
|
||||
|
||||
## Phase 3: Provisioning Automation
|
||||
- [x] Create `ProvisioningServiceInterface` abstraction
|
||||
@@ -91,6 +100,22 @@
|
||||
- [ ] Send credentials email on successful provisioning
|
||||
- [x] Log all provisioning actions to `provisioning_logs` table
|
||||
|
||||
## Support Ticket System (Standalone) ✅
|
||||
- [x] TicketReply model with relationships
|
||||
- [x] Updated SupportTicket model with replies() relationship and department field
|
||||
- [x] Migration: ticket_replies table + department column on support_tickets
|
||||
- [x] Customer TicketController (index, create, store, show, reply, close)
|
||||
- [x] Admin TicketController (index with filters, show, reply, updateStatus)
|
||||
- [x] SupportTicketFactory with open/closed/urgent states
|
||||
- [x] TicketReplyFactory with staffReply state
|
||||
- [x] Customer Vue pages: Tickets/Index, Tickets/Create, Tickets/Show
|
||||
- [x] Admin Vue pages: Admin/Tickets/Index, Admin/Tickets/Show
|
||||
- [x] Ticket status/priority color resolvers
|
||||
- [x] TypeScript interfaces for SupportTicket and TicketReply
|
||||
- [x] Navigation items for both account and admin sidebars
|
||||
- [x] Routes for both account and admin subdomains
|
||||
- [x] 30 Pest tests (144 total, 775 assertions)
|
||||
|
||||
## Phase 4: Customer Dashboard (account.ezscale.cloud)
|
||||
- [x] Build service overview dashboard:
|
||||
- [x] Active services list with status indicators
|
||||
@@ -109,7 +134,7 @@
|
||||
- [ ] Payment history
|
||||
- [ ] Manage payment methods (add/remove cards, set default)
|
||||
- [ ] Upcoming renewals
|
||||
- [ ] Plan upgrade/downgrade flow (self-service with proration)
|
||||
- [x] Plan upgrade/downgrade flow (self-service with proration)
|
||||
- [ ] Subscription cancellation flow (with optional survey)
|
||||
- [x] Profile and account settings:
|
||||
- [x] Contact information
|
||||
@@ -136,7 +161,7 @@
|
||||
- [x] Customer list (searchable, filterable)
|
||||
- [x] Customer detail view (profile, services, billing history, notes)
|
||||
- [ ] Edit customer information
|
||||
- [ ] Impersonate customer (with audit logging)
|
||||
- [x] Impersonate customer (with audit logging)
|
||||
- [ ] Add admin notes to customer account
|
||||
- [ ] View customer audit log
|
||||
- [x] Service management:
|
||||
@@ -146,10 +171,10 @@
|
||||
- [x] Terminate service
|
||||
- [ ] Modify service (change plan, extend expiry)
|
||||
- [x] View provisioning logs
|
||||
- [ ] Order management:
|
||||
- [ ] Pending orders list
|
||||
- [ ] Approve/reject orders (for semi-automated provisioning)
|
||||
- [ ] View order details
|
||||
- [x] Order management:
|
||||
- [x] Pending orders list
|
||||
- [x] Approve/reject orders (for semi-automated provisioning)
|
||||
- [x] View order details
|
||||
- [x] Invoice management:
|
||||
- [x] All invoices list (filter by status, date, customer)
|
||||
- [ ] Create manual invoice
|
||||
@@ -241,7 +266,7 @@
|
||||
- [ ] Coupon code application
|
||||
- [ ] Add to cart / checkout flow
|
||||
- [x] About page
|
||||
- [x] Contact page
|
||||
- [x] Contact page with form submission backend
|
||||
- [ ] Blog/news section (optional, or use WordPress?)
|
||||
- [ ] Knowledge base / FAQ:
|
||||
- [ ] Getting started guides
|
||||
@@ -253,6 +278,7 @@
|
||||
- [x] Privacy Policy
|
||||
- [x] Acceptable Use Policy
|
||||
- [x] SLA (Service Level Agreement)
|
||||
- [x] Footer links to legal pages
|
||||
- [ ] Signup flow:
|
||||
- [ ] Plan selection
|
||||
- [ ] Account creation
|
||||
|
||||
Reference in New Issue
Block a user