fix(api): Decimal-параметр ребалансировки ломал генерацию Dart-клиента
cash_available был bare Decimal | None в Query(...) — pydantic отдаёт для Decimal anyOf[number, pattern-string], который openapi-generator не умеет свернуть в один тип и вместо этого синтезирует пустой класс CashAvailable без полей (синтаксически битый .dart, компиляция всего пакета падает). Остальные Decimal-поля в API давно оборачиваются в Money/MoneyOpt (api/schemas/common.py) ровно за счёт этого — anyOf[string, null] генератор понимает. cash_available обошёл соглашение, потому что это единственный Decimal-параметр запроса во всём API, а не тело ответа.
This commit is contained in:
@@ -47,7 +47,6 @@ export 'package:fintracker_api/src/model/benchmark_return_out.dart';
|
||||
export 'package:fintracker_api/src/model/broker.dart';
|
||||
export 'package:fintracker_api/src/model/calendar_entry.dart';
|
||||
export 'package:fintracker_api/src/model/calendar_out.dart';
|
||||
export 'package:fintracker_api/src/model/cash_available.dart';
|
||||
export 'package:fintracker_api/src/model/cash_flow_broker_month.dart';
|
||||
export 'package:fintracker_api/src/model/cash_flow_month.dart';
|
||||
export 'package:fintracker_api/src/model/category_out.dart';
|
||||
|
||||
@@ -9,7 +9,6 @@ import 'dart:convert';
|
||||
import 'package:fintracker_api/src/deserialize.dart';
|
||||
import 'package:dio/dio.dart';
|
||||
|
||||
import 'package:fintracker_api/src/model/cash_available.dart';
|
||||
import 'package:fintracker_api/src/model/problem.dart';
|
||||
import 'package:fintracker_api/src/model/rebalance_out.dart';
|
||||
import 'package:fintracker_api/src/model/targets_in.dart';
|
||||
@@ -40,7 +39,7 @@ class RebalanceApi {
|
||||
Future<Response<RebalanceOut>> rebalanceRebalance({
|
||||
required int portfolioId,
|
||||
String? dimension = 'asset_class',
|
||||
CashAvailable? cashAvailable,
|
||||
String? cashAvailable,
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
|
||||
@@ -11,7 +11,6 @@ import 'package:fintracker_api/src/model/benchmark_patch.dart';
|
||||
import 'package:fintracker_api/src/model/benchmark_return_out.dart';
|
||||
import 'package:fintracker_api/src/model/calendar_entry.dart';
|
||||
import 'package:fintracker_api/src/model/calendar_out.dart';
|
||||
import 'package:fintracker_api/src/model/cash_available.dart';
|
||||
import 'package:fintracker_api/src/model/cash_flow_broker_month.dart';
|
||||
import 'package:fintracker_api/src/model/cash_flow_month.dart';
|
||||
import 'package:fintracker_api/src/model/category_out.dart';
|
||||
@@ -144,8 +143,6 @@ final _regMap = RegExp(r'^Map<String,(.*)>$');
|
||||
return CalendarEntry.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'CalendarOut':
|
||||
return CalendarOut.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'CashAvailable':
|
||||
return CashAvailable.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'CashFlowBrokerMonth':
|
||||
return CashFlowBrokerMonth.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'CashFlowMonth':
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
// ignore_for_file: unused_element
|
||||
import 'package:copy_with_extension/copy_with_extension.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'cash_available.g.dart';
|
||||
|
||||
|
||||
@CopyWith()
|
||||
@JsonSerializable(
|
||||
checked: true,
|
||||
createToJson: true,
|
||||
disallowUnrecognizedKeys: false,
|
||||
explicitToJson: true,
|
||||
)
|
||||
class CashAvailable {
|
||||
/// Returns a new [CashAvailable] instance.
|
||||
CashAvailable({
|
||||
});
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) => identical(this, other) || other is CashAvailable &&
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
|
||||
factory CashAvailable.fromJson(Map<String, dynamic> json) => _$CashAvailableFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$CashAvailableToJson(this);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return toJson().toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user