refactor: save current workspace state including FinlyticAnalyzer fixes, FinlyticApp trade route alignment, and DTO audit documentation

This commit is contained in:
2026-08-12 18:30:42 +02:00
parent a9553e9fbf
commit 3d8af3940b
163 changed files with 3421 additions and 1751 deletions
@@ -2,11 +2,9 @@ import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import '../../../core/network/api_client.dart';
import '../bloc/fundamentals/asset_fundamentals_bloc.dart';
import '../bloc/fundamentals/asset_fundamentals_event.dart';
import '../bloc/header/asset_header_bloc.dart';
import '../bloc/header/asset_header_event.dart';
import '../bloc/technical/asset_technical_bloc.dart';
import '../bloc/technical/asset_technical_event.dart';
import '../bloc/trades/asset_trades_bloc.dart';
import '../bloc/trades/asset_trades_event.dart';
import '../repositories/asset_repository.dart';
@@ -14,13 +12,17 @@ import 'layouts/asset_page_desktop_layout.dart';
import 'layouts/asset_page_mobile_layout.dart';
class AssetDetailScreen extends StatelessWidget {
final String symbol;
final String isin;
final String? name;
final String? symbol;
final ApiClient apiClient;
const AssetDetailScreen({
super.key,
required this.symbol,
required this.isin,
this.symbol,
required this.apiClient,
required this.name,
});
@override
@@ -30,25 +32,35 @@ class AssetDetailScreen extends StatelessWidget {
return MultiBlocProvider(
providers: [
BlocProvider(
create: (context) => AssetHeaderBloc(repository: repository)..add(LoadAssetHeader(symbol)),
create: (context) => AssetHeaderBloc(repository: repository)
..add(LoadAssetHeader(isin, ticker: symbol)),
),
BlocProvider(
create: (context) => AssetFundamentalsBloc(repository: repository)..add(LoadAssetFundamentals(symbol)),
create: (context) => AssetFundamentalsBloc(repository: repository),
),
BlocProvider(
create: (context) => AssetTechnicalBloc(repository: repository)..add(LoadAssetTechnical(symbol)),
create: (context) => AssetTechnicalBloc(repository: repository),
),
BlocProvider(
create: (context) => AssetTradesBloc(repository: repository)..add(LoadAssetTrades(symbol)),
create: (context) => AssetTradesBloc(repository: repository)
..add(LoadAssetTrades(isin)),
),
],
child: Scaffold(
body: LayoutBuilder(
builder: (context, constraints) {
if (constraints.maxWidth >= 900) {
return AssetPageDesktopLayout(symbol: symbol);
return AssetPageDesktopLayout(
isin: isin,
name: name,
selectedTicker: symbol,
);
}
return AssetPageMobileLayout(symbol: symbol);
return AssetPageMobileLayout(
isin: isin,
name: name,
selectedTicker: symbol,
);
},
),
),