import 'package:json_annotation/json_annotation.dart'; import 'package:networks_sdk/networks_sdk.dart'; import 'package:im_app/core/foundation/api_paths.dart'; part 'send_otp_request.g.dart'; /// 发送验证码响应 /// /// code: 0 时 [expiryTime] 有值; /// code: 30174(触发图片验证)时 [android] / [ios] / [web] / [extras] 有值。 class SendOtpResponse { /// 验证码有效期(秒) @JsonKey(name: 'expiry_time') final int? expiryTime; /// Android CAPTCHA SDK token final String? android; /// iOS CAPTCHA SDK token final String? ios; /// Web CAPTCHA SDK token final String? web; /// CAPTCHA 平台扩展参数(预留字段) final Map? extras; const SendOtpResponse({ this.expiryTime, this.android, this.ios, this.web, this.extras, }); } /// # /app/api/auth/vcode/get — 发送手机验证码 /// /// 响应 `data: { "expiry_time": 180 }`,返回验证码有效期(秒)。 /// /// ## 数据流位置 /// /// ``` /// AuthRepositoryImpl.sendOtp(countryCode, contact) /// → _client.executeRequest( ★ SendOtpRequest ★ ) ← 你在这里 /// → 服务端 POST /app/api/auth/vcode/get /// → 响应 { expiry_time: 180 } → SendOtpResponse /// ``` @ApiRequest( path: ApiPaths.authSendOtp, method: HttpMethod.post, responseType: SendOtpResponse, requestType: ApiRequestType.login, ) class SendOtpRequest extends ApiRequestable with _$SendOtpRequestApi { @JsonKey(name: 'country_code') final String countryCode; final String contact; /// type=1 表示手机号验证 final int type; SendOtpRequest({ required this.countryCode, required this.contact, this.type = 1, }); }