- Change RefererId, Balance, GiftAmount, Commission from int64 to *int64 in UpdateUserBasiceInfoRequest
- When field is nil (not sent by client), skip update entirely — prevents zero-value from clobbering existing data
- When field is non-nil, dereference and apply as before (including explicit 0 to clear a value)
- Mirrors the existing guard pattern already used for Avatar, ReferCode, Enable, IsAdmin, etc.
Fixes: RefererId unconditional overwrite at line 123 (P02)
Fixes: Balance/GiftAmount/Commission triggering adjustment to 0 when omitted (P03)
Co-authored-by: multica-agent <github@multica.ai>
- Node group CRUD operations with traffic-based filtering
- Three grouping modes: average distribution, subscription-based, and traffic-based
- Automatic and manual group recalculation with history tracking
- Group assignment preview before applying changes
- User subscription group locking to prevent automatic reassignment
- Subscribe-to-group mapping configuration
- Group calculation history and detailed reports
- System configuration for group management (enabled/mode/auto_create)
Database:
- Add node_group table for group definitions
- Add group_history and group_history_detail tables for tracking
- Add node_group_ids (JSON) to nodes and subscribe tables
- Add node_group_id and group_locked fields to user_subscribe table
- Add migration files for schema changes