intimacy_analyze_config_helper.dart 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import 'package:get/get_rx/src/rx_types/rx_types.dart';
  2. import 'package:injectable/injectable.dart';
  3. import '../data/api/response/intimacy_analyze_chat_config_response.dart';
  4. import '../data/api/response/intimacy_analyze_config_response.dart';
  5. import '../data/repository/intimacy_analyze_repository.dart';
  6. /// 亲密度分析模块的配置的帮助类
  7. @injectable
  8. class IntimacyAnalyzeConfigHelper {
  9. /// 亲密度分析Repository
  10. IntimacyAnalyzeRepository intimacyAnalyzeRepository;
  11. /// 亲密度配置
  12. Rxn<IntimacyAnalyzeConfigResponse> get intimacyAnalyzeConfig =>
  13. intimacyAnalyzeRepository.intimacyAnalyzeConfig;
  14. /// 对话分析配置
  15. Rxn<IntimacyAnalyzeChatConfigResponse> get intimacyAnalyzeChatConfig =>
  16. intimacyAnalyzeRepository.intimacyAnalyzeChatConfig;
  17. IntimacyAnalyzeConfigHelper(this.intimacyAnalyzeRepository);
  18. /// 是否可以自定义预测方向
  19. bool isCanCustomDirection() {
  20. var config = intimacyAnalyzeConfig.value;
  21. if (config == null) {
  22. return false;
  23. }
  24. return config.custom ?? false;
  25. }
  26. /// 获取自定义预测方向,最大自定义字符数
  27. int getMaxCustomDirectionWords() {
  28. var config = intimacyAnalyzeConfig.value;
  29. if (config == null) {
  30. return 0;
  31. }
  32. return config.maxCustomWords ?? 0;
  33. }
  34. /// 获取自定义预测方向,最小自定义字符数
  35. int getMinCustomDirectionWords() {
  36. var config = intimacyAnalyzeConfig.value;
  37. if (config == null) {
  38. return 0;
  39. }
  40. return config.minCustomWords ?? 0;
  41. }
  42. /// 最多,可以选多少张图片
  43. int getMaxAssetsCount() {
  44. var config = intimacyAnalyzeConfig.value;
  45. if (config == null) {
  46. return 1;
  47. }
  48. // 最多选多少张
  49. if (config.maxImageCount != null) {
  50. return config.maxImageCount!;
  51. }
  52. // 最少选多少张
  53. return config.minImageCount ?? 1;
  54. }
  55. }