import 'package:sunny_mochi/core/config/env.dart'; /// API 网络配置 — baseUrl 的单一决策权威。 /// /// **新项目必填**:在下方 switch 中填入三套环境的实际 baseUrl, /// 或者在 dart-defines/*.json 中设置 API_BASE_URL 做临时覆盖。 /// /// 优先级: /// 1. dart-define `API_BASE_URL` 不为空时优先(CI/CD / 临时调试) /// 2. 否则按 `Env.name`(dev / test / release)返回对应 URL /// /// **API 路径**:见 lib/core/config/api_paths.dart(禁止 datasource 散落字面量) /// **响应码**:见 lib/core/network/response_code.dart abstract class ApiConfig { /// API 网关 baseUrl /// /// TODO: 将下方三个 URL 替换为项目实际后端地址。 static String get baseUrl { // 1. dart-define 覆盖优先(临时切换私有环境 / CI 注入) if (Env.apiBaseUrlOverride.isNotEmpty) { return Env.apiBaseUrlOverride; } // 2. 按环境返回固定 URL — TODO: 填入实际地址 return switch (Env.name) { 'dev' => 'http://localhost:8080', // TODO: dev 服务器地址 'test' => 'https://staging.your-domain.com', // TODO: staging 服务器地址 'release' => 'https://api.your-domain.com', // TODO: 生产服务器地址 _ => 'http://localhost:8080', }; } // 网络超时配置 static const Duration connectTimeout = Duration(seconds: 15); static const Duration receiveTimeout = Duration(seconds: 30); static const Duration sendTimeout = Duration(seconds: 30); }