feat : Modèle avec sérialisation automatique

This commit is contained in:
Yaël Perret
2026-05-05 21:52:13 +02:00
parent 93a54ae19b
commit d88b32d8f2
13 changed files with 404 additions and 89 deletions

View File

@@ -1,4 +1,5 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
// dart format width=80
// **************************************************************************
// StackedBottomsheetGenerator

View File

@@ -1,4 +1,5 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
// dart format width=80
// **************************************************************************
// StackedDialogGenerator

View File

@@ -1,4 +1,5 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
// dart format width=80
// **************************************************************************
// StackedLocatorGenerator
@@ -13,10 +14,8 @@ import 'package:stacked_shared/stacked_shared.dart';
final locator = StackedLocator.instance;
Future<void> setupLocator({
String? environment,
EnvironmentFilter? environmentFilter,
}) async {
Future<void> setupLocator(
{String? environment, EnvironmentFilter? environmentFilter}) async {
// Register environments
locator.registerEnvironment(
environment: environment, environmentFilter: environmentFilter);

View File

@@ -1,4 +1,5 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
// dart format width=80
// **************************************************************************
// StackedNavigatorGenerator
@@ -16,6 +17,8 @@ import 'package:stacked/stacked.dart' as _i1;
import 'package:stacked_services/stacked_services.dart' as _i7;
class Routes {
static const homeView = '/home-view';
static const startupView = '/startup-view';
static const mainView = '/main-view';
@@ -24,6 +27,8 @@ class Routes {
static const eventDetailsView = '/event-details-view';
static const eventDetailsView = '/event-details-view';
static const all = <String>{
homeView,
startupView,
@@ -34,6 +39,10 @@ class Routes {
class StackedRouter extends _i1.RouterBase {
final _routes = <_i1.RouteDef>[
_i1.RouteDef(
Routes.homeView,
page: _i2.HomeView,
),
_i1.RouteDef(
Routes.startupView,
page: _i3.StartupView,
@@ -50,24 +59,37 @@ class StackedRouter extends _i1.RouterBase {
Routes.eventDetailsView,
page: _i5.EventDetailsView,
),
_i1.RouteDef(
Routes.eventDetailsView,
page: _i5.EventDetailsView,
),
];
final _pagesMap = <Type, _i1.StackedRouteFactory>{
_i2.HomeView: (data) {
final args = data.getArgs<HomeViewArguments>(
orElse: () => const HomeViewArguments(),
);
return _i6.MaterialPageRoute<dynamic>(
builder: (context) => const _i2.HomeView(),
builder: (context) => _i2.HomeView(key: args.key),
settings: data,
);
},
_i3.StartupView: (data) {
final args = data.getArgs<StartupViewArguments>(
orElse: () => const StartupViewArguments(),
);
return _i6.MaterialPageRoute<dynamic>(
builder: (context) => const _i3.StartupView(),
builder: (context) => _i3.StartupView(key: args.key),
settings: data,
);
},
_i4.MainView: (data) {
final args = data.getArgs<MainViewArguments>(
orElse: () => const MainViewArguments(),
);
return _i6.MaterialPageRoute<dynamic>(
builder: (context) => const _i4.MainView(),
builder: (context) => _i4.MainView(key: args.key),
settings: data,
);
},
@@ -88,6 +110,72 @@ class StackedRouter extends _i1.RouterBase {
Map<Type, _i1.StackedRouteFactory> get pagesMap => _pagesMap;
}
class HomeViewArguments {
const HomeViewArguments({this.key});
final _i6.Key? key;
@override
String toString() {
return '{"key": "$key"}';
}
@override
bool operator ==(covariant HomeViewArguments other) {
if (identical(this, other)) return true;
return other.key == key;
}
@override
int get hashCode {
return key.hashCode;
}
}
class StartupViewArguments {
const StartupViewArguments({this.key});
final _i6.Key? key;
@override
String toString() {
return '{"key": "$key"}';
}
@override
bool operator ==(covariant StartupViewArguments other) {
if (identical(this, other)) return true;
return other.key == key;
}
@override
int get hashCode {
return key.hashCode;
}
}
class MainViewArguments {
const MainViewArguments({this.key});
final _i6.Key? key;
@override
String toString() {
return '{"key": "$key"}';
}
@override
bool operator ==(covariant MainViewArguments other) {
if (identical(this, other)) return true;
return other.key == key;
}
@override
int get hashCode {
return key.hashCode;
}
}
class EventDetailsViewArguments {
const EventDetailsViewArguments({
this.key,
@@ -116,42 +204,64 @@ class EventDetailsViewArguments {
}
extension NavigatorStateExtension on _i7.NavigationService {
Future<dynamic> navigateToStartupView([
Future<dynamic> navigateToHomeView({
_i6.Key? key,
int? routerId,
bool preventDuplicates = true,
Map<String, String>? parameters,
Widget Function(BuildContext, Animation<double>, Animation<double>, Widget)?
transition,
]) async {
return navigateTo<dynamic>(Routes.startupView,
id: routerId,
preventDuplicates: preventDuplicates,
parameters: parameters,
transition: transition);
}
Future<dynamic> navigateToMainView([
int? routerId,
bool preventDuplicates = true,
Map<String, String>? parameters,
Widget Function(BuildContext, Animation<double>, Animation<double>, Widget)?
transition,
]) async {
return navigateTo<dynamic>(Routes.mainView,
id: routerId,
preventDuplicates: preventDuplicates,
parameters: parameters,
transition: transition);
}
Future<dynamic> navigateToHomeView([
int? routerId,
bool preventDuplicates = true,
Map<String, String>? parameters,
Widget Function(BuildContext, Animation<double>, Animation<double>, Widget)?
transition,
]) async {
}) async {
return navigateTo<dynamic>(Routes.homeView,
arguments: HomeViewArguments(key: key),
id: routerId,
preventDuplicates: preventDuplicates,
parameters: parameters,
transition: transition);
}
Future<dynamic> navigateToStartupView({
_i6.Key? key,
int? routerId,
bool preventDuplicates = true,
Map<String, String>? parameters,
Widget Function(BuildContext, Animation<double>, Animation<double>, Widget)?
transition,
}) async {
return navigateTo<dynamic>(Routes.startupView,
arguments: StartupViewArguments(key: key),
id: routerId,
preventDuplicates: preventDuplicates,
parameters: parameters,
transition: transition);
}
Future<dynamic> navigateToMainView({
_i6.Key? key,
int? routerId,
bool preventDuplicates = true,
Map<String, String>? parameters,
Widget Function(BuildContext, Animation<double>, Animation<double>, Widget)?
transition,
}) async {
return navigateTo<dynamic>(Routes.mainView,
arguments: MainViewArguments(key: key),
id: routerId,
preventDuplicates: preventDuplicates,
parameters: parameters,
transition: transition);
}
Future<dynamic> navigateToHomeView({
_i6.Key? key,
int? routerId,
bool preventDuplicates = true,
Map<String, String>? parameters,
Widget Function(BuildContext, Animation<double>, Animation<double>, Widget)?
transition,
}) async {
return navigateTo<dynamic>(Routes.homeView,
arguments: HomeViewArguments(key: key),
id: routerId,
preventDuplicates: preventDuplicates,
parameters: parameters,
@@ -175,42 +285,98 @@ extension NavigatorStateExtension on _i7.NavigationService {
transition: transition);
}
Future<dynamic> replaceWithStartupView([
Future<dynamic> navigateToEventDetailsView({
_i6.Key? key,
required int eventId,
int? routerId,
bool preventDuplicates = true,
Map<String, String>? parameters,
Widget Function(BuildContext, Animation<double>, Animation<double>, Widget)?
transition,
]) async {
return replaceWith<dynamic>(Routes.startupView,
}) async {
return navigateTo<dynamic>(Routes.eventDetailsView,
arguments: EventDetailsViewArguments(key: key, eventId: eventId),
id: routerId,
preventDuplicates: preventDuplicates,
parameters: parameters,
transition: transition);
}
Future<dynamic> replaceWithMainView([
Future<dynamic> replaceWithHomeView({
_i6.Key? key,
int? routerId,
bool preventDuplicates = true,
Map<String, String>? parameters,
Widget Function(BuildContext, Animation<double>, Animation<double>, Widget)?
transition,
]) async {
return replaceWith<dynamic>(Routes.mainView,
id: routerId,
preventDuplicates: preventDuplicates,
parameters: parameters,
transition: transition);
}
Future<dynamic> replaceWithHomeView([
int? routerId,
bool preventDuplicates = true,
Map<String, String>? parameters,
Widget Function(BuildContext, Animation<double>, Animation<double>, Widget)?
transition,
]) async {
}) async {
return replaceWith<dynamic>(Routes.homeView,
arguments: HomeViewArguments(key: key),
id: routerId,
preventDuplicates: preventDuplicates,
parameters: parameters,
transition: transition);
}
Future<dynamic> replaceWithStartupView({
_i6.Key? key,
int? routerId,
bool preventDuplicates = true,
Map<String, String>? parameters,
Widget Function(BuildContext, Animation<double>, Animation<double>, Widget)?
transition,
}) async {
return replaceWith<dynamic>(Routes.startupView,
arguments: StartupViewArguments(key: key),
id: routerId,
preventDuplicates: preventDuplicates,
parameters: parameters,
transition: transition);
}
Future<dynamic> replaceWithMainView({
_i6.Key? key,
int? routerId,
bool preventDuplicates = true,
Map<String, String>? parameters,
Widget Function(BuildContext, Animation<double>, Animation<double>, Widget)?
transition,
}) async {
return replaceWith<dynamic>(Routes.mainView,
arguments: MainViewArguments(key: key),
id: routerId,
preventDuplicates: preventDuplicates,
parameters: parameters,
transition: transition);
}
Future<dynamic> replaceWithHomeView({
_i6.Key? key,
int? routerId,
bool preventDuplicates = true,
Map<String, String>? parameters,
Widget Function(BuildContext, Animation<double>, Animation<double>, Widget)?
transition,
}) async {
return replaceWith<dynamic>(Routes.homeView,
arguments: HomeViewArguments(key: key),
id: routerId,
preventDuplicates: preventDuplicates,
parameters: parameters,
transition: transition);
}
Future<dynamic> replaceWithEventDetailsView({
_i6.Key? key,
required int eventId,
int? routerId,
bool preventDuplicates = true,
Map<String, String>? parameters,
Widget Function(BuildContext, Animation<double>, Animation<double>, Widget)?
transition,
}) async {
return replaceWith<dynamic>(Routes.eventDetailsView,
arguments: EventDetailsViewArguments(key: key, eventId: eventId),
id: routerId,
preventDuplicates: preventDuplicates,
parameters: parameters,