50e4f43738
Implement company AI onboarding/recommendation models, services, repository, and tender UI integration with supporting tests. Co-authored-by: Cursor <cursoragent@cursor.com>
35 lines
1.2 KiB
Dart
35 lines
1.2 KiB
Dart
import 'dart:convert';
|
|
|
|
import 'package:tm_app/core/utils/result.dart';
|
|
import 'package:tm_app/data/services/api/company_ai_api.dart';
|
|
import 'package:tm_app/data/services/model/onboarding_response/onboarding_response.dart';
|
|
import 'package:tm_app/data/services/model/recommend_response/recommend_response.dart';
|
|
|
|
import '../../core/network/network_manager.dart';
|
|
|
|
/// Thin wrapper over the AI recommendation endpoints. The backend reads
|
|
/// `company_id` from the JWT, so both calls send an empty JSON body.
|
|
class CompanyAiService {
|
|
CompanyAiService({required NetworkManager networkManager})
|
|
: _networkManager = networkManager;
|
|
final NetworkManager _networkManager;
|
|
|
|
Future<Result<OnboardingResponse>> startOnboarding() async {
|
|
return _networkManager.makeRequest(
|
|
CompanyAiApi.onboarding,
|
|
method: 'POST',
|
|
(json) => OnboardingResponse.fromJson(json),
|
|
data: jsonEncode(const <String, dynamic>{}),
|
|
);
|
|
}
|
|
|
|
Future<Result<RecommendResponse>> getRecommendations() async {
|
|
return _networkManager.makeRequest(
|
|
CompanyAiApi.recommend,
|
|
method: 'POST',
|
|
(json) => RecommendResponse.fromJson(json),
|
|
data: jsonEncode(const <String, dynamic>{}),
|
|
);
|
|
}
|
|
}
|