# SUBS Progress Summary

## Asas Sistem
- Create source sistem `SUBS`
- branding utama kepada `SUBS`
- Create Structure database kepada `subs`
- Setup script `start/stop` untuk run sistem
- Betulkan flow login dan hidden maintenance access
- Tambah access maintenance melalui `.env`:
  - `SYSTEM_ACCESS`
  - `SYSTEM_KEY`
  - `SYSTEM_SECRET`

## Scope Bisnes SUBS
- Tetapkan sistem ini sebagai `Subang Uptown Billing System`
- Jadikan sistem `single-site`
- Bersihkan database supaya tinggal `Subang Uptown` sahaja
- Set `site id = 1` untuk `Subang Uptown`
- Sorok menu `Sites`
- Lock direct access `/admin/sites` dalam mode satu-site

## Role Dan Access
- Susun role utama:
  - `admin`
  - `ao`
  - `ae`
  - `spv`
  - `customer`
- Customer boleh register sendiri
- Customer perlu approve oleh `SPV/Admin`
- Access matrix asas ikut flow:
  - `SPV` create subscription, mark paid, approve customer
  - `AO` approve subscription, generate invoice, amend invoice, submit LHDN, consolidated
  - `AE` view-oriented access
  - `Admin` full access

## Flow Subscription Dan Billing
- Bina modul `Season Pass Package`
- Bina modul `Customer Subscriptions`
- Bina modul `Billing Settings`
- Support flow:
  - SPV key in customer
  - AO approve subscription
  - AO manual generate first invoice
  - Auto-generate renewal invoice ikut schedule
  - Auto-cancel overdue unpaid invoice
  - Mark paid
  - Generate payment receipt
  - Customer request e-invoice within 3 days

## Flow E-Invoice Dan LHDN
- Create module integration submit ke LHDN
- Customer request e-invoice dari portal
- Check submission status
- Update status pada admin/backoffice
- Hidupkan semula `Monthly Consolidated`
- Consolidated jalan dari data lokal SUBS, bukan DORRS/IPOPS
- AO/Admin boleh generate, export, submit, dan check status consolidated

## PDF, Receipt, Dan Email
- Generate invoice PDF
- Generate payment receipt PDF
- Generate tax invoice / e-invoice PDF
- Auto-email invoice/receipt kepada customer
- Email trigger selepas generate invoice dan mark paid

## UI Dan Frontend
- Landing public page diubah jadi `1-page slider`
- `Request` dan `Check Existing Invoice` jadi slide berasingan
- Tambah dots dan arrow navigation
- Tukar wording public page supaya khusus kepada `Subang season parking`
- Redesign admin layout ikut arah visual baru
- Kemaskan sidebar/menu
- Banyak class custom ditukar kepada prefix `subs_`

## Users Dan Admin Tools
- Modul Users dengan:
  - add/edit/delete
  - approve/reject customer
  - assign site
- Password field edit dimask
- Export ditambah untuk:
  - Users
  - Customer Subscriptions
  - Season Pass Packages
  - Invoice Requests
  - LHDN Submissions
  - Monthly Consolidated

## Filter Dan Reporting
- Tambah search, filter, sort, per-page pada banyak list
- Tambah filter tambahan untuk:
  - Users
  - Customer Subscriptions
  - Season Pass Packages
- Reporting/export semakin lengkap ikut requirement

## Seeder Dan Data Demo
- Tambah `SubsUatSeeder`
- Sediakan demo user:
  - admin
  - ao
  - ae
  - spv
  - customer
- Sediakan sample package, billing setting, subscription, dan invoice demo
- Kemaskan `SiteSeeder` supaya hanya `Subang Uptown`

## Requirement Yang Hampir Siap
- Assign user by site
- Package management
- Invoice generate date
- Due date setting
- Amend invoice before payment
- Amend invoice status
- Site-based structure
- Export list utama

## Yang Masih Berbaki
- Audit semua UI wording supaya lebih tepat ikut dokumen flow
- Lengkapkan filter ikut setiap column untuk semua list
- Semak output payment receipt + QR supaya tepat ikut expectation bisnes
- Kemaskan lagi admin design jika mahu ikut template free baru
- Audit akhir setiap step flow 1-9 secara UAT sebenar
