Files
monisuo/flutter_monisuo/lib/data/services/bonus_service.dart

62 lines
1.7 KiB
Dart
Raw Normal View History

2026-03-29 16:15:07 +08:00
import '../../core/constants/api_endpoints.dart';
import '../../core/network/api_response.dart';
import '../../core/network/dio_client.dart';
2026-04-07 01:05:05 +08:00
/// 福利中心服務
2026-03-29 16:15:07 +08:00
class BonusService {
final DioClient _client;
BonusService(this._client);
2026-04-07 01:05:05 +08:00
/// 獲取福利中心狀態
2026-04-04 21:19:29 +08:00
Future<ApiResponse<Map<String, dynamic>>> getWelfareStatus() async {
2026-03-29 16:15:07 +08:00
final response = await _client.get<Map<String, dynamic>>(
2026-04-04 21:19:29 +08:00
ApiEndpoints.bonusWelfare,
2026-03-29 16:15:07 +08:00
);
if (response.success && response.data != null) {
return ApiResponse.success(response.data!, response.message);
}
2026-04-07 01:05:05 +08:00
return ApiResponse.fail(response.message ?? '獲取福利狀態失敗');
2026-03-29 16:15:07 +08:00
}
2026-04-07 01:05:05 +08:00
/// 領取首充福利
2026-04-04 21:19:29 +08:00
Future<ApiResponse<Map<String, dynamic>>> claimNewUserBonus() async {
2026-03-29 16:15:07 +08:00
return _client.post<Map<String, dynamic>>(
ApiEndpoints.bonusClaim,
2026-04-04 21:19:29 +08:00
data: {'type': 'new_user'},
);
}
2026-04-07 01:05:05 +08:00
/// 領取推廣獎勵
2026-04-04 21:19:29 +08:00
Future<ApiResponse<Map<String, dynamic>>> claimReferralBonus(
int referredUserId,
int milestone,
) async {
return _client.post<Map<String, dynamic>>(
ApiEndpoints.bonusClaim,
data: {
'type': 'referral',
'referredUserId': referredUserId,
'milestone': milestone,
},
2026-03-29 16:15:07 +08:00
);
}
2026-04-07 01:05:05 +08:00
/// 領取間接推廣獎勵
Future<ApiResponse<Map<String, dynamic>>> claimIndirectReferralBonus(
int directReferralId,
int indirectReferredUserId,
int milestone,
) async {
return _client.post<Map<String, dynamic>>(
ApiEndpoints.bonusClaim,
data: {
'type': 'indirect_referral',
'directReferralId': directReferralId,
'indirectReferredUserId': indirectReferredUserId,
'milestone': milestone,
},
);
}
2026-03-29 16:15:07 +08:00
}