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:
Dmitry
2026-09-19 10:56:33 +03:00
parent ccd06f32f7
commit baac83149f
10 changed files with 5053 additions and 122 deletions
@@ -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':