chatapp3-flutter/lib/app/config/configs/sc_variant1_config.dart
2026-04-15 14:44:27 +08:00

174 lines
5.6 KiB
Dart

import 'package:flutter/foundation.dart';
import 'package:yumi/app/config/app_config.dart';
import 'package:yumi/app/config/business_logic_strategy.dart';
import 'package:yumi/app/config/strategies/variant1_business_logic_strategy.dart';
/// 马甲包配置
class SCVariant1Config implements AppConfig {
BusinessLogicStrategy? _businessLogicStrategy;
@override
String get appName => 'yumi'; // 马甲包应用名称
@override
String get packageName => 'com.org.yumiparty';
@override
String get apiHost => const String.fromEnvironment(
'API_HOST',
defaultValue: 'https://jvapi.haiyihy.com/',
); // 默认连线上环境,本地调试可通过 --dart-define=API_HOST 覆盖
@override
String get imgHost => 'https://img.atuchat.com/'; // 测试图片服务器,上架前需替换为正式域名
@override
String get privacyAgreementUrl => 'https://h5.haiyihy.com/privacy.html'; // 正式隐私政策页面
@override
String get userAgreementUrl => 'https://h5.haiyihy.com/service.html'; // 正式用户协议页面
@override
String get appDownloadUrlGoogle => 'https://play.google.com/store/apps/details?id=$packageName';
@override
String get appDownloadUrlApple => 'https://apps.apple.com/us/app/atuchat/id1234567890'; // 需要更新为真实App Store ID
@override
String get anchorAgentUrl => 'https://h5.haiyihy.com/apply/index.html'; // 正式 H5 页面
@override
String get hostCenterUrl => 'https://h5.haiyihy.com/host-center/index.html'; // 正式 H5 页面
@override
String get bdCenterUrl => 'https://h5.haiyihy.com/bd-center/index.html'; // 正式 H5 页面
@override
String get bdLeaderUrl => 'https://h5.haiyihy.com/bd-leader-center/index.html'; // 正式 H5 页面
@override
String get coinSellerUrl => 'https://h5.haiyihy.com/coin-seller/index.html'; // 正式 H5 页面
@override
String get adminUrl => 'https://h5.haiyihy.com/admin-center/index.html'; // 正式 H5 页面
@override
String get agencyCenterUrl => 'https://h5.haiyihy.com/agency-center/index.html'; // 正式 H5 页面
@override
String get gamesKingUrl => 'https://h5.haiyihy.com/games-king/index.html'; // 正式 H5 页面
@override
String get wealthRankUrl => 'https://h5.haiyihy.com/ranking/index.html?first=Wealth'; // 正式 H5 页面
@override
String get charmRankUrl => 'https://h5.haiyihy.com/ranking/index.html?first=Charm'; // 正式 H5 页面
@override
String get roomRankUrl => 'https://h5.haiyihy.com/ranking/index.html?first=Room'; // 正式 H5 页面
@override
String get inviteNewUserUrl => 'https://h5.haiyihy.com/invitation/invite-new-user/index.html'; // 正式 H5 页面
@override
int get primaryColor => 0xffFF5722; // 不同主色(橙色)
@override
String get tencentImAppid => '20036101';
@override
String get agoraRtcAppid => '4b5e5cea3b86476caf7f7a57d05b82d1';
@override
num get gameAppid => 9999999999; // 需要注册新的游戏服务账户并获取独立App ID
@override
String get gameAppChannel => 'yumi';
@override
String get bigBroadcastGroup => '@TGS#2RUK4PK5C2';
@override
String get imAdmin => 'c2c_yumiadmin';
@override
bool get isReview => true;
@override
bool get isGiftSpecialEffects => true;
@override
bool get isEntryVehicleAnimation => true;
@override
bool get isFloatingAnimationInGlobal => true;
@override
bool get isLuckGiftSpecialEffects => true;
@override
Map<String, bool> get featureFlags => {
'giftSpecialEffects': isGiftSpecialEffects,
'entryVehicleAnimation': isEntryVehicleAnimation,
'floatingAnimationInGlobal': isFloatingAnimationInGlobal,
'luckGiftSpecialEffects': isLuckGiftSpecialEffects,
};
@override
BusinessLogicStrategy get businessLogicStrategy {
return _businessLogicStrategy ??= Variant1BusinessLogicStrategy();
}
@override
Map<String, dynamic> toMap() {
return {
'appName': appName,
'packageName': packageName,
'apiHost': apiHost,
'imgHost': imgHost,
'privacyAgreementUrl': privacyAgreementUrl,
'userAgreementUrl': userAgreementUrl,
'primaryColor': primaryColor,
'tencentImAppid': tencentImAppid,
'agoraRtcAppid': agoraRtcAppid,
'gameAppid': gameAppid,
'gameAppChannel': gameAppChannel,
'bigBroadcastGroup': bigBroadcastGroup,
'imAdmin': imAdmin,
'isReview': isReview,
'isGiftSpecialEffects': isGiftSpecialEffects,
'isEntryVehicleAnimation': isEntryVehicleAnimation,
'isFloatingAnimationInGlobal': isFloatingAnimationInGlobal,
'isLuckGiftSpecialEffects': isLuckGiftSpecialEffects,
'featureFlags': featureFlags,
'businessLogicStrategy': 'Variant1BusinessLogicStrategy',
};
}
@override
void validate() {
final errors = <String>[];
// 检查API主机地址
if (apiHost.isEmpty || !apiHost.startsWith('http')) {
errors.add('API主机地址无效或未设置');
}
// 如果有错误,根据模式处理
if (errors.isNotEmpty) {
final errorMessage = '应用配置验证失败:\n${errors.join('\n')}';
if (kDebugMode) {
// 调试模式下只输出警告,不阻止应用启动(方便开发)
debugPrint('⚠️ 警告: $errorMessage');
debugPrint('⚠️ 在调试模式下,应用将继续启动,但某些功能可能无法正常工作');
} else {
// 发布模式下抛出异常,阻止应用启动
throw StateError(errorMessage);
}
} else {
debugPrint('应用配置验证通过');
}
}
}