:::mermaid
flowchart TD
A["🔵 Bắt đầu: analyze_trend"] --> B["Phân tích tham số:<br/>current_cycle, comparison_cycles,<br/>threshold_percent, service_type, billing_plan"]
B --> C{"Định dạng current_cycle hợp lệ?"}
C -->|"Không hợp lệ"| D["Trả về lỗi:<br/>Định dạng ngày không hợp lệ DD-MM-YYYY"]
C -->|"Hợp lệ"| E["Tính các chu kỳ so sánh"]
E --> F["Tạo các ngày N chu kỳ trước"]
F --> G["Query doanh thu chu kỳ hiện tại"]
G --> H["Query doanh thu các chu kỳ trước"]
H --> I["Với mỗi khách hàng:"]
I --> J["Tính doanh thu trung bình<br/>từ các chu kỳ trước"]
J --> K["So sánh Hiện tại vs Trung bình"]
K --> L{"Thay đổi > threshold_percent?"}
L -->|"Không"| M["Đánh dấu ỔN ĐỊNH"]
L -->|"Có"| N{"Hướng?"}
N -->|"Tăng"| O["Đánh dấu TĂNG TRƯỞNG<br/>Khách hàng tăng trưởng cao"]
N -->|"Giảm"| P["Đánh dấu RỦI RO RỜI BỎ<br/>Cảnh báo doanh thu giảm"]
M --> Q["Thu thập kết quả"]
O --> Q
P --> Q
Q --> R["Thống kê tổng hợp:<br/>- Tổng khách hàng phân tích<br/>- Số tăng trưởng<br/>- Số rủi ro rời bỏ<br/>- Số ổn định"]
R --> S["Áp dụng Filters"]
S --> S1{"Filter service_type?"}
S1 -->|"Có"| S2["Lọc theo service_type"]
S1 -->|"Không"| S3["Tiếp tục"]
S2 --> S3
S3 --> S4{"Filter billing_plan?"}
S4 -->|"Có"| S5["Lọc theo billing_plan"]
S4 -->|"Không"| S6["Tiếp tục"]
S5 --> S6
S6 --> T["Định dạng báo cáo:<br/>- Tóm tắt<br/>- Danh sách rủi ro rời bỏ<br/>- Danh sách tăng trưởng cao<br/>- Phân tích xu hướng"]
T --> U["Trả về kết quả"]
U --> V["🔴 Kết thúc"]
D --> V
style A fill:#4CAF50,color:white
style V fill:#f44336,color:white
style C fill:#FF9800,color:white
style L fill:#FF9800,color:white
style N fill:#2196F3,color:white
style O fill:#4CAF50,color:white
style P fill:#f44336,color:white
style M fill:#9E9E9E,color:white
:::