Add stat screen (wip) to be tested + ia assistant activation for mobile (todo add to tablet) + SERVICE GENERATION
This commit is contained in:
parent
3520d2d3d2
commit
b9ab5238ba
@ -285,6 +285,45 @@ class _AppConfigurationLinkScreenState extends State<AppConfigurationLinkScreen>
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
// Assistant IA — visible uniquement si l'instance a la fonctionnalité
|
||||||
|
if (managerAppContext.instanceDTO?.isAssistant == true)
|
||||||
|
Container(
|
||||||
|
width: elementWidth,
|
||||||
|
height: elementHeight,
|
||||||
|
child: Center(
|
||||||
|
child: StatefulBuilder(
|
||||||
|
builder: (context, localSetState) {
|
||||||
|
return Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
Text("Assistant IA :", style: TextStyle(fontSize: 16)),
|
||||||
|
Switch(
|
||||||
|
activeThumbColor: kPrimaryColor,
|
||||||
|
inactiveThumbColor: kBodyTextColor,
|
||||||
|
inactiveTrackColor: kSecond,
|
||||||
|
hoverColor: kPrimaryColor.withValues(alpha: 0.2),
|
||||||
|
value: _applicationInstanceDTO.isAssistant ?? false,
|
||||||
|
onChanged: (bool newValue) async {
|
||||||
|
try {
|
||||||
|
_applicationInstanceDTO.isAssistant = newValue;
|
||||||
|
var applicationLink = await updateApplicationInstance(appContext, _applicationInstanceDTO);
|
||||||
|
if (applicationLink != null) {
|
||||||
|
localSetState(() {
|
||||||
|
_applicationInstanceDTO.isAssistant = applicationLink.isAssistant;
|
||||||
|
});
|
||||||
|
showNotification(kSuccess, kWhite, "Application mobile mise à jour succès", context, null);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
showNotification(kError, kWhite, "Une erreur est survenue", context, null);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -203,7 +203,6 @@ class _GameConfigState extends State<GameConfig> {
|
|||||||
NumberInputContainer(
|
NumberInputContainer(
|
||||||
label: "Lignes :",
|
label: "Lignes :",
|
||||||
initialValue: gameDTO.rows ?? 3,
|
initialValue: gameDTO.rows ?? 3,
|
||||||
color: kPrimaryColor,
|
|
||||||
isSmall: true,
|
isSmall: true,
|
||||||
onChanged: (String value) {
|
onChanged: (String value) {
|
||||||
setState(() {
|
setState(() {
|
||||||
@ -215,7 +214,6 @@ class _GameConfigState extends State<GameConfig> {
|
|||||||
NumberInputContainer(
|
NumberInputContainer(
|
||||||
label: "Colonnes :",
|
label: "Colonnes :",
|
||||||
initialValue: gameDTO.cols ?? 3,
|
initialValue: gameDTO.cols ?? 3,
|
||||||
color: kPrimaryColor,
|
|
||||||
isSmall: true,
|
isSmall: true,
|
||||||
onChanged: (String value) {
|
onChanged: (String value) {
|
||||||
setState(() {
|
setState(() {
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import 'package:manager_app/Models/menuSection.dart';
|
|||||||
import 'package:manager_app/Screens/Configurations/configurations_screen.dart';
|
import 'package:manager_app/Screens/Configurations/configurations_screen.dart';
|
||||||
import 'package:manager_app/Screens/Kiosk_devices/kiosk_screen.dart';
|
import 'package:manager_app/Screens/Kiosk_devices/kiosk_screen.dart';
|
||||||
import 'package:manager_app/Screens/Resources/resources_screen.dart';
|
import 'package:manager_app/Screens/Resources/resources_screen.dart';
|
||||||
|
import 'package:manager_app/Screens/Statistics/statistics_screen.dart';
|
||||||
import 'package:manager_app/Screens/Applications/app_configuration_link_screen.dart';
|
import 'package:manager_app/Screens/Applications/app_configuration_link_screen.dart';
|
||||||
import 'package:manager_app/app_context.dart';
|
import 'package:manager_app/app_context.dart';
|
||||||
import 'package:manager_app/constants.dart';
|
import 'package:manager_app/constants.dart';
|
||||||
@ -50,6 +51,9 @@ class _MainScreenState extends State<MainScreen> {
|
|||||||
resources = MenuSection(name: "Ressources", type: "resources", menuId: 6, subMenu: []);
|
resources = MenuSection(name: "Ressources", type: "resources", menuId: 6, subMenu: []);
|
||||||
|
|
||||||
menu.sections = [devices, configurations, resources];
|
menu.sections = [devices, configurations, resources];
|
||||||
|
if (widget.instance.isStatistic == true) {
|
||||||
|
menu.sections!.add(MenuSection(name: "Statistiques", type: "statistics", menuId: 7, subMenu: []));
|
||||||
|
}
|
||||||
|
|
||||||
if(currentPosition.value == null) {
|
if(currentPosition.value == null) {
|
||||||
if (widget.instance.isMobile!) {
|
if (widget.instance.isMobile!) {
|
||||||
@ -305,6 +309,9 @@ class _MainScreenState extends State<MainScreen> {
|
|||||||
case "resources":
|
case "resources":
|
||||||
currentPosition = 6;
|
currentPosition = 6;
|
||||||
break;
|
break;
|
||||||
|
case "statistics":
|
||||||
|
currentPosition = 7;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -360,6 +367,11 @@ class _MainScreenState extends State<MainScreen> {
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
case 'statistics' :
|
||||||
|
return const Padding(
|
||||||
|
padding: EdgeInsets.all(8.0),
|
||||||
|
child: StatisticsScreen()
|
||||||
|
);
|
||||||
default:
|
default:
|
||||||
return Text('Hellow default');
|
return Text('Hellow default');
|
||||||
}
|
}
|
||||||
|
|||||||
513
lib/Screens/Statistics/statistics_screen.dart
Normal file
513
lib/Screens/Statistics/statistics_screen.dart
Normal file
@ -0,0 +1,513 @@
|
|||||||
|
import 'package:fl_chart/fl_chart.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:manager_app/Models/managerContext.dart';
|
||||||
|
import 'package:manager_app/app_context.dart';
|
||||||
|
import 'package:manager_app/constants.dart';
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
class StatisticsScreen extends StatefulWidget {
|
||||||
|
const StatisticsScreen({Key? key}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
_StatisticsScreenState createState() => _StatisticsScreenState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _StatisticsScreenState extends State<StatisticsScreen> {
|
||||||
|
int _selectedDays = 30;
|
||||||
|
AppType? _selectedAppType; // null = "Tous"
|
||||||
|
Future<StatsSummaryDTO?>? _future;
|
||||||
|
late ManagerAppContext _managerAppContext;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
WidgetsBinding.instance.addPostFrameCallback((_) => _load());
|
||||||
|
}
|
||||||
|
|
||||||
|
void _load() {
|
||||||
|
final days = _selectedDays;
|
||||||
|
final appType = _selectedAppType;
|
||||||
|
setState(() {
|
||||||
|
_future = _managerAppContext.clientAPI!.statsApi!.statsGetSummary(
|
||||||
|
_managerAppContext.instanceId!,
|
||||||
|
from: DateTime.now().subtract(Duration(days: days)),
|
||||||
|
to: DateTime.now(),
|
||||||
|
appType: appType?.name,
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
String _formatDuration(int seconds) {
|
||||||
|
if (seconds < 60) return '${seconds}s';
|
||||||
|
final m = seconds ~/ 60;
|
||||||
|
final s = seconds % 60;
|
||||||
|
return '${m}m${s > 0 ? ' ${s}s' : ''}';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
final appContext = Provider.of<AppContext>(context);
|
||||||
|
_managerAppContext = appContext.getContext() as ManagerAppContext;
|
||||||
|
|
||||||
|
return Padding(
|
||||||
|
padding: const EdgeInsets.all(16),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
_buildHeader(),
|
||||||
|
const SizedBox(height: 16),
|
||||||
|
Expanded(
|
||||||
|
child: FutureBuilder<StatsSummaryDTO?>(
|
||||||
|
future: _future,
|
||||||
|
builder: (context, snapshot) {
|
||||||
|
if (snapshot.connectionState == ConnectionState.waiting) {
|
||||||
|
return const Center(child: CircularProgressIndicator());
|
||||||
|
}
|
||||||
|
if (snapshot.hasError || snapshot.data == null) {
|
||||||
|
return Center(child: Text('Impossible de charger les statistiques', style: TextStyle(color: kBodyTextColor)));
|
||||||
|
}
|
||||||
|
final stats = snapshot.data!;
|
||||||
|
return _buildDashboard(stats);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildHeader() {
|
||||||
|
return Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
Text('Statistiques', style: TextStyle(fontSize: 26, fontWeight: FontWeight.w600, color: kPrimaryColor)),
|
||||||
|
SegmentedButton<int>(
|
||||||
|
style: SegmentedButton.styleFrom(
|
||||||
|
selectedBackgroundColor: kPrimaryColor,
|
||||||
|
selectedForegroundColor: kWhite,
|
||||||
|
),
|
||||||
|
segments: const [
|
||||||
|
ButtonSegment(value: 7, label: Text('7j')),
|
||||||
|
ButtonSegment(value: 30, label: Text('30j')),
|
||||||
|
ButtonSegment(value: 90, label: Text('90j')),
|
||||||
|
],
|
||||||
|
selected: {_selectedDays},
|
||||||
|
onSelectionChanged: (s) {
|
||||||
|
_selectedDays = s.first;
|
||||||
|
_load();
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10),
|
||||||
|
Wrap(
|
||||||
|
spacing: 8,
|
||||||
|
children: [
|
||||||
|
ChoiceChip(
|
||||||
|
label: const Text('Tous'),
|
||||||
|
selected: _selectedAppType == null,
|
||||||
|
selectedColor: kPrimaryColor,
|
||||||
|
labelStyle: TextStyle(color: _selectedAppType == null ? kWhite : kBodyTextColor),
|
||||||
|
onSelected: (_) { _selectedAppType = null; _load(); },
|
||||||
|
),
|
||||||
|
...AppType.values.map((type) => ChoiceChip(
|
||||||
|
label: Text(type.name),
|
||||||
|
selected: _selectedAppType == type,
|
||||||
|
selectedColor: kPrimaryColor,
|
||||||
|
labelStyle: TextStyle(color: _selectedAppType == type ? kWhite : kBodyTextColor),
|
||||||
|
onSelected: (_) { _selectedAppType = type; _load(); },
|
||||||
|
)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildDashboard(StatsSummaryDTO stats) {
|
||||||
|
if (stats.totalSessions == 0) {
|
||||||
|
return Center(
|
||||||
|
child: Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Icon(Icons.bar_chart_outlined, size: 56, color: kBodyTextColor.withValues(alpha: 0.4)),
|
||||||
|
const SizedBox(height: 16),
|
||||||
|
Text(
|
||||||
|
'Pas encore de données pour cette période',
|
||||||
|
style: TextStyle(fontSize: 15, color: kBodyTextColor),
|
||||||
|
),
|
||||||
|
if (_selectedAppType != null) ...[
|
||||||
|
const SizedBox(height: 8),
|
||||||
|
Text(
|
||||||
|
'Aucun event reçu pour le type "${_selectedAppType!.name}"',
|
||||||
|
style: TextStyle(fontSize: 13, color: kBodyTextColor.withValues(alpha: 0.6)),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return SingleChildScrollView(
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
// KPI cards
|
||||||
|
_buildKpiRow(stats),
|
||||||
|
const SizedBox(height: 20),
|
||||||
|
// Line chart
|
||||||
|
_buildLineChart(stats),
|
||||||
|
const SizedBox(height: 20),
|
||||||
|
// Bar chart + Donut charts
|
||||||
|
_buildChartsRow(stats),
|
||||||
|
const SizedBox(height: 20),
|
||||||
|
// Bottom tables
|
||||||
|
_buildTablesRow(stats),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildKpiRow(StatsSummaryDTO stats) {
|
||||||
|
final topAppType = stats.appTypeDistribution.isNotEmpty
|
||||||
|
? stats.appTypeDistribution.entries.reduce((a, b) => a.value > b.value ? a : b)
|
||||||
|
: null;
|
||||||
|
final topLang = stats.languageDistribution.isNotEmpty
|
||||||
|
? stats.languageDistribution.entries.reduce((a, b) => a.value > b.value ? a : b)
|
||||||
|
: null;
|
||||||
|
|
||||||
|
return Row(
|
||||||
|
children: [
|
||||||
|
_kpiCard('Sessions', '${stats.totalSessions}', Icons.people_outline),
|
||||||
|
const SizedBox(width: 12),
|
||||||
|
_kpiCard('Durée moy.', _formatDuration(stats.avgVisitDurationSeconds), Icons.timer_outlined),
|
||||||
|
const SizedBox(width: 12),
|
||||||
|
_kpiCard('App top', topAppType?.key ?? '—', Icons.phone_iphone),
|
||||||
|
const SizedBox(width: 12),
|
||||||
|
_kpiCard('Langue top', topLang?.key.toUpperCase() ?? '—', Icons.language),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _kpiCard(String label, String value, IconData icon) {
|
||||||
|
return Expanded(
|
||||||
|
child: Card(
|
||||||
|
elevation: 0,
|
||||||
|
color: kWhite,
|
||||||
|
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)),
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.symmetric(vertical: 20, horizontal: 16),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Icon(icon, color: kPrimaryColor, size: 22),
|
||||||
|
const SizedBox(height: 8),
|
||||||
|
Text(value, style: TextStyle(fontSize: 26, fontWeight: FontWeight.w700, color: kPrimaryColor)),
|
||||||
|
const SizedBox(height: 4),
|
||||||
|
Text(label, style: TextStyle(fontSize: 13, color: kBodyTextColor)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildLineChart(StatsSummaryDTO stats) {
|
||||||
|
if (stats.visitsByDay.isEmpty) return const SizedBox();
|
||||||
|
|
||||||
|
final spots = <FlSpot>[];
|
||||||
|
final mobileSpots = <FlSpot>[];
|
||||||
|
final tabletSpots = <FlSpot>[];
|
||||||
|
|
||||||
|
for (var i = 0; i < stats.visitsByDay.length; i++) {
|
||||||
|
final d = stats.visitsByDay[i];
|
||||||
|
spots.add(FlSpot(i.toDouble(), d.total.toDouble()));
|
||||||
|
mobileSpots.add(FlSpot(i.toDouble(), d.mobile.toDouble()));
|
||||||
|
tabletSpots.add(FlSpot(i.toDouble(), d.tablet.toDouble()));
|
||||||
|
}
|
||||||
|
|
||||||
|
final isFiltered = _selectedAppType != null;
|
||||||
|
|
||||||
|
return Card(
|
||||||
|
elevation: 0,
|
||||||
|
color: kWhite,
|
||||||
|
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)),
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.all(20),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Text('Visites par jour', style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: kPrimaryColor)),
|
||||||
|
const SizedBox(height: 4),
|
||||||
|
if (!isFiltered) Row(children: [
|
||||||
|
_legendDot(kPrimaryColor), const SizedBox(width: 4), Text('Mobile', style: TextStyle(fontSize: 12, color: kBodyTextColor)),
|
||||||
|
const SizedBox(width: 12),
|
||||||
|
_legendDot(kSecond), const SizedBox(width: 4), Text('Tablet', style: TextStyle(fontSize: 12, color: kBodyTextColor)),
|
||||||
|
]),
|
||||||
|
const SizedBox(height: 16),
|
||||||
|
SizedBox(
|
||||||
|
height: 200,
|
||||||
|
child: LineChart(LineChartData(
|
||||||
|
gridData: FlGridData(show: true, drawVerticalLine: false),
|
||||||
|
titlesData: FlTitlesData(
|
||||||
|
leftTitles: AxisTitles(sideTitles: SideTitles(showTitles: true, reservedSize: 32)),
|
||||||
|
rightTitles: AxisTitles(sideTitles: SideTitles(showTitles: false)),
|
||||||
|
topTitles: AxisTitles(sideTitles: SideTitles(showTitles: false)),
|
||||||
|
bottomTitles: AxisTitles(sideTitles: SideTitles(
|
||||||
|
showTitles: true,
|
||||||
|
interval: (stats.visitsByDay.length / 5).ceilToDouble().clamp(1, double.infinity),
|
||||||
|
getTitlesWidget: (value, meta) {
|
||||||
|
final idx = value.toInt();
|
||||||
|
if (idx < 0 || idx >= stats.visitsByDay.length) return const SizedBox();
|
||||||
|
final date = stats.visitsByDay[idx].date ?? '';
|
||||||
|
return Text(date.length >= 5 ? date.substring(5) : date, style: const TextStyle(fontSize: 10));
|
||||||
|
},
|
||||||
|
)),
|
||||||
|
),
|
||||||
|
borderData: FlBorderData(show: false),
|
||||||
|
lineBarsData: isFiltered
|
||||||
|
? [_lineBar(spots, kPrimaryColor)]
|
||||||
|
: [_lineBar(mobileSpots, kPrimaryColor), _lineBar(tabletSpots, kSecond)],
|
||||||
|
)),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _legendDot(Color color) {
|
||||||
|
return Container(width: 10, height: 10, decoration: BoxDecoration(color: color, shape: BoxShape.circle));
|
||||||
|
}
|
||||||
|
|
||||||
|
LineChartBarData _lineBar(List<FlSpot> spots, Color color) {
|
||||||
|
return LineChartBarData(
|
||||||
|
spots: spots,
|
||||||
|
isCurved: true,
|
||||||
|
color: color,
|
||||||
|
barWidth: 2,
|
||||||
|
dotData: FlDotData(show: false),
|
||||||
|
belowBarData: BarAreaData(show: true, color: color.withOpacity(0.1)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildChartsRow(StatsSummaryDTO stats) {
|
||||||
|
final showAppTypeDonut = _selectedAppType == null;
|
||||||
|
return Row(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Expanded(flex: 2, child: _buildTopSectionsChart(stats)),
|
||||||
|
const SizedBox(width: 12),
|
||||||
|
if (showAppTypeDonut) ...[
|
||||||
|
Expanded(child: _buildDonut(stats.appTypeDistribution, 'Apps')),
|
||||||
|
const SizedBox(width: 12),
|
||||||
|
],
|
||||||
|
Expanded(child: _buildDonut(stats.languageDistribution, 'Langues')),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildTopSectionsChart(StatsSummaryDTO stats) {
|
||||||
|
if (stats.topSections.isEmpty) return const SizedBox();
|
||||||
|
final sections = stats.topSections.take(8).toList();
|
||||||
|
final maxViews = sections.map((s) => s.views).reduce((a, b) => a > b ? a : b);
|
||||||
|
|
||||||
|
return Card(
|
||||||
|
elevation: 0,
|
||||||
|
color: kWhite,
|
||||||
|
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)),
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.all(20),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Text('Top sections', style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: kPrimaryColor)),
|
||||||
|
const SizedBox(height: 16),
|
||||||
|
SizedBox(
|
||||||
|
height: 240,
|
||||||
|
child: BarChart(BarChartData(
|
||||||
|
alignment: BarChartAlignment.spaceAround,
|
||||||
|
maxY: maxViews.toDouble() * 1.2,
|
||||||
|
barTouchData: BarTouchData(enabled: true),
|
||||||
|
titlesData: FlTitlesData(
|
||||||
|
leftTitles: AxisTitles(sideTitles: SideTitles(showTitles: true, reservedSize: 32)),
|
||||||
|
rightTitles: AxisTitles(sideTitles: SideTitles(showTitles: false)),
|
||||||
|
topTitles: AxisTitles(sideTitles: SideTitles(showTitles: false)),
|
||||||
|
bottomTitles: AxisTitles(sideTitles: SideTitles(
|
||||||
|
showTitles: true,
|
||||||
|
getTitlesWidget: (value, meta) {
|
||||||
|
final idx = value.toInt();
|
||||||
|
if (idx < 0 || idx >= sections.length) return const SizedBox();
|
||||||
|
final title = sections[idx].sectionTitle ?? sections[idx].sectionId ?? '';
|
||||||
|
return Padding(
|
||||||
|
padding: const EdgeInsets.only(top: 4),
|
||||||
|
child: Text(
|
||||||
|
title.length > 8 ? '${title.substring(0, 8)}…' : title,
|
||||||
|
style: const TextStyle(fontSize: 10),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
)),
|
||||||
|
),
|
||||||
|
borderData: FlBorderData(show: false),
|
||||||
|
gridData: FlGridData(drawVerticalLine: false),
|
||||||
|
barGroups: List.generate(sections.length, (i) => BarChartGroupData(
|
||||||
|
x: i,
|
||||||
|
barRods: [BarChartRodData(
|
||||||
|
toY: sections[i].views.toDouble(),
|
||||||
|
color: kPrimaryColor,
|
||||||
|
width: 16,
|
||||||
|
borderRadius: const BorderRadius.vertical(top: Radius.circular(4)),
|
||||||
|
)],
|
||||||
|
)),
|
||||||
|
)),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
static const _chartColors = [
|
||||||
|
Color(0xFF264863),
|
||||||
|
Color(0xFF4A8FAD),
|
||||||
|
Color(0xFF87C4D8),
|
||||||
|
Color(0xFFC2C9D6),
|
||||||
|
Color(0xFF8BA7B8),
|
||||||
|
Color(0xFF1A3347),
|
||||||
|
];
|
||||||
|
|
||||||
|
Widget _buildDonut(Map<String, int> data, String title) {
|
||||||
|
if (data.isEmpty) return const SizedBox();
|
||||||
|
final total = data.values.fold(0, (a, b) => a + b);
|
||||||
|
final entries = data.entries.toList();
|
||||||
|
|
||||||
|
return Card(
|
||||||
|
elevation: 0,
|
||||||
|
color: kWhite,
|
||||||
|
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)),
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.all(20),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Text(title, style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: kPrimaryColor)),
|
||||||
|
const SizedBox(height: 16),
|
||||||
|
SizedBox(
|
||||||
|
height: 160,
|
||||||
|
child: PieChart(PieChartData(
|
||||||
|
centerSpaceRadius: 45,
|
||||||
|
sectionsSpace: 2,
|
||||||
|
sections: List.generate(entries.length, (i) {
|
||||||
|
final pct = total > 0 ? (entries[i].value / total * 100).round() : 0;
|
||||||
|
return PieChartSectionData(
|
||||||
|
value: entries[i].value.toDouble(),
|
||||||
|
color: _chartColors[i % _chartColors.length],
|
||||||
|
title: '$pct%',
|
||||||
|
titleStyle: const TextStyle(fontSize: 11, color: Colors.white, fontWeight: FontWeight.w600),
|
||||||
|
radius: 40,
|
||||||
|
);
|
||||||
|
}),
|
||||||
|
)),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 12),
|
||||||
|
...List.generate(entries.length, (i) => Padding(
|
||||||
|
padding: const EdgeInsets.symmetric(vertical: 2),
|
||||||
|
child: Row(children: [
|
||||||
|
Container(width: 10, height: 10, decoration: BoxDecoration(
|
||||||
|
color: _chartColors[i % _chartColors.length], shape: BoxShape.circle)),
|
||||||
|
const SizedBox(width: 6),
|
||||||
|
Expanded(child: Text(entries[i].key, style: TextStyle(fontSize: 12, color: kBodyTextColor), overflow: TextOverflow.ellipsis)),
|
||||||
|
Text('${entries[i].value}', style: TextStyle(fontSize: 12, color: kBodyTextColor)),
|
||||||
|
]),
|
||||||
|
)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildTablesRow(StatsSummaryDTO stats) {
|
||||||
|
return Row(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
if (stats.topPois.isNotEmpty) Expanded(child: _buildPoiTable(stats)),
|
||||||
|
if (stats.topPois.isNotEmpty && stats.topAgendaEvents.isNotEmpty) const SizedBox(width: 12),
|
||||||
|
if (stats.topAgendaEvents.isNotEmpty) Expanded(child: _buildAgendaTable(stats)),
|
||||||
|
if ((stats.topPois.isNotEmpty || stats.topAgendaEvents.isNotEmpty) && stats.quizStats.isNotEmpty) const SizedBox(width: 12),
|
||||||
|
if (stats.quizStats.isNotEmpty) Expanded(child: _buildQuizTable(stats)),
|
||||||
|
if ((stats.topPois.isNotEmpty || stats.topAgendaEvents.isNotEmpty || stats.quizStats.isNotEmpty) && stats.gameStats.isNotEmpty) const SizedBox(width: 12),
|
||||||
|
if (stats.gameStats.isNotEmpty) Expanded(child: _buildGameTable(stats)),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildPoiTable(StatsSummaryDTO stats) {
|
||||||
|
return _tableCard('Top POI', ['POI', 'Taps'], stats.topPois.map((p) => [
|
||||||
|
p.title ?? p.geoPointId?.toString() ?? '—',
|
||||||
|
'${p.taps}',
|
||||||
|
]).toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildAgendaTable(StatsSummaryDTO stats) {
|
||||||
|
return _tableCard('Top événements agenda', ['Événement', 'Taps'], stats.topAgendaEvents.map((e) => [
|
||||||
|
e.eventTitle ?? e.eventId ?? '—',
|
||||||
|
'${e.taps}',
|
||||||
|
]).toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildQuizTable(StatsSummaryDTO stats) {
|
||||||
|
return _tableCard('Quiz', ['Section', 'Score moy', 'Complétions'], stats.quizStats.map((q) => [
|
||||||
|
q.sectionTitle ?? q.sectionId ?? '—',
|
||||||
|
'${q.avgScore.toStringAsFixed(1)} / ${q.totalQuestions}',
|
||||||
|
'${q.completions}',
|
||||||
|
]).toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildGameTable(StatsSummaryDTO stats) {
|
||||||
|
return _tableCard('Jeux', ['Type', 'Complétions', 'Durée moy.'], stats.gameStats.map((g) => [
|
||||||
|
g.gameType ?? '—',
|
||||||
|
'${g.completions}',
|
||||||
|
_formatDuration(g.avgDurationSeconds),
|
||||||
|
]).toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _tableCard(String title, List<String> headers, List<List<String>> rows) {
|
||||||
|
return Card(
|
||||||
|
elevation: 0,
|
||||||
|
color: kWhite,
|
||||||
|
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)),
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.all(16),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Text(title, style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: kPrimaryColor)),
|
||||||
|
const SizedBox(height: 12),
|
||||||
|
Table(
|
||||||
|
columnWidths: const {0: FlexColumnWidth(2), 1: FlexColumnWidth(1)},
|
||||||
|
children: [
|
||||||
|
TableRow(
|
||||||
|
decoration: BoxDecoration(border: Border(bottom: BorderSide(color: kSecond))),
|
||||||
|
children: headers.map((h) => Padding(
|
||||||
|
padding: const EdgeInsets.only(bottom: 8),
|
||||||
|
child: Text(h, style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: kBodyTextColor)),
|
||||||
|
)).toList(),
|
||||||
|
),
|
||||||
|
...rows.map((row) => TableRow(
|
||||||
|
children: row.map((cell) => Padding(
|
||||||
|
padding: const EdgeInsets.symmetric(vertical: 6),
|
||||||
|
child: Text(cell, style: TextStyle(fontSize: 13, color: kBodyTextColor), overflow: TextOverflow.ellipsis),
|
||||||
|
)).toList(),
|
||||||
|
)).toList(),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,4 +1,4 @@
|
|||||||
// Openapi Generator last run: : 2026-02-27T13:23:36.794687
|
// Openapi Generator last run: : 2026-03-13T12:04:24.358808
|
||||||
import 'package:openapi_generator_annotations/openapi_generator_annotations.dart';
|
import 'package:openapi_generator_annotations/openapi_generator_annotations.dart';
|
||||||
|
|
||||||
@Openapi(
|
@Openapi(
|
||||||
|
|||||||
1511
lib/api/swagger.yaml
1511
lib/api/swagger.yaml
File diff suppressed because it is too large
Load Diff
@ -41,6 +41,9 @@ class Client {
|
|||||||
SectionEventApi? _sectionEventApi;
|
SectionEventApi? _sectionEventApi;
|
||||||
SectionEventApi? get sectionEventApi => _sectionEventApi;
|
SectionEventApi? get sectionEventApi => _sectionEventApi;
|
||||||
|
|
||||||
|
StatsApi? _statsApi;
|
||||||
|
StatsApi? get statsApi => _statsApi;
|
||||||
|
|
||||||
Client(String path) {
|
Client(String path) {
|
||||||
_apiClient = ApiClient(basePath: path);
|
_apiClient = ApiClient(basePath: path);
|
||||||
//basePath: "https://192.168.31.140");
|
//basePath: "https://192.168.31.140");
|
||||||
@ -58,5 +61,6 @@ class Client {
|
|||||||
_sectionQuizApi = SectionQuizApi(_apiClient);
|
_sectionQuizApi = SectionQuizApi(_apiClient);
|
||||||
_sectionAgendaApi = SectionAgendaApi(_apiClient);
|
_sectionAgendaApi = SectionAgendaApi(_apiClient);
|
||||||
_sectionEventApi = SectionEventApi(_apiClient);
|
_sectionEventApi = SectionEventApi(_apiClient);
|
||||||
|
_statsApi = StatsApi(_apiClient);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,8 +2,15 @@
|
|||||||
.travis.yml
|
.travis.yml
|
||||||
README.md
|
README.md
|
||||||
analysis_options.yaml
|
analysis_options.yaml
|
||||||
|
doc/AIApi.md
|
||||||
doc/AgendaDTO.md
|
doc/AgendaDTO.md
|
||||||
doc/AgendaDTOAllOfAgendaMapProvider.md
|
doc/AgendaDTOAllOfAgendaMapProvider.md
|
||||||
|
doc/AgendaEventStatDTO.md
|
||||||
|
doc/AiCardDTO.md
|
||||||
|
doc/AiChatMessage.md
|
||||||
|
doc/AiChatRequest.md
|
||||||
|
doc/AiChatResponse.md
|
||||||
|
doc/AiChatResponseNavigation.md
|
||||||
doc/AppConfigurationLink.md
|
doc/AppConfigurationLink.md
|
||||||
doc/AppConfigurationLinkApplicationInstance.md
|
doc/AppConfigurationLinkApplicationInstance.md
|
||||||
doc/AppConfigurationLinkConfiguration.md
|
doc/AppConfigurationLinkConfiguration.md
|
||||||
@ -28,6 +35,7 @@ doc/Coordinate.md
|
|||||||
doc/CoordinateEqualityComparer.md
|
doc/CoordinateEqualityComparer.md
|
||||||
doc/CoordinateSequence.md
|
doc/CoordinateSequence.md
|
||||||
doc/CoordinateSequenceFactory.md
|
doc/CoordinateSequenceFactory.md
|
||||||
|
doc/DayStatDTO.md
|
||||||
doc/Device.md
|
doc/Device.md
|
||||||
doc/DeviceApi.md
|
doc/DeviceApi.md
|
||||||
doc/DeviceDTO.md
|
doc/DeviceDTO.md
|
||||||
@ -42,6 +50,7 @@ doc/EventAgendaDTOResource.md
|
|||||||
doc/ExportConfigurationDTO.md
|
doc/ExportConfigurationDTO.md
|
||||||
doc/GameDTO.md
|
doc/GameDTO.md
|
||||||
doc/GameDTOAllOfPuzzleImage.md
|
doc/GameDTOAllOfPuzzleImage.md
|
||||||
|
doc/GameStatDTO.md
|
||||||
doc/GameTypes.md
|
doc/GameTypes.md
|
||||||
doc/GeoPoint.md
|
doc/GeoPoint.md
|
||||||
doc/GeoPointDTO.md
|
doc/GeoPointDTO.md
|
||||||
@ -80,6 +89,7 @@ doc/MapProvider.md
|
|||||||
doc/MapTypeApp.md
|
doc/MapTypeApp.md
|
||||||
doc/MapTypeMapBox.md
|
doc/MapTypeMapBox.md
|
||||||
doc/MenuDTO.md
|
doc/MenuDTO.md
|
||||||
|
doc/NavigationActionDTO.md
|
||||||
doc/NtsGeometryServices.md
|
doc/NtsGeometryServices.md
|
||||||
doc/NtsGeometryServicesCoordinateEqualityComparer.md
|
doc/NtsGeometryServicesCoordinateEqualityComparer.md
|
||||||
doc/NtsGeometryServicesGeometryOverlay.md
|
doc/NtsGeometryServicesGeometryOverlay.md
|
||||||
@ -88,12 +98,14 @@ doc/OrderedTranslationAndResourceDTO.md
|
|||||||
doc/Ordinates.md
|
doc/Ordinates.md
|
||||||
doc/PdfDTO.md
|
doc/PdfDTO.md
|
||||||
doc/PlayerMessageDTO.md
|
doc/PlayerMessageDTO.md
|
||||||
|
doc/PoiStatDTO.md
|
||||||
doc/Point.md
|
doc/Point.md
|
||||||
doc/PointAllOfBoundary.md
|
doc/PointAllOfBoundary.md
|
||||||
doc/PointAllOfCoordinate.md
|
doc/PointAllOfCoordinate.md
|
||||||
doc/PointAllOfCoordinateSequence.md
|
doc/PointAllOfCoordinateSequence.md
|
||||||
doc/PrecisionModel.md
|
doc/PrecisionModel.md
|
||||||
doc/PrecisionModels.md
|
doc/PrecisionModels.md
|
||||||
|
doc/ProblemDetails.md
|
||||||
doc/ProgrammeBlock.md
|
doc/ProgrammeBlock.md
|
||||||
doc/ProgrammeBlockDTO.md
|
doc/ProgrammeBlockDTO.md
|
||||||
doc/QuestionDTO.md
|
doc/QuestionDTO.md
|
||||||
@ -103,6 +115,7 @@ doc/QuizDTO.md
|
|||||||
doc/QuizQuestion.md
|
doc/QuizQuestion.md
|
||||||
doc/QuizQuestionGuidedStep.md
|
doc/QuizQuestionGuidedStep.md
|
||||||
doc/QuizQuestionSectionQuiz.md
|
doc/QuizQuestionSectionQuiz.md
|
||||||
|
doc/QuizStatDTO.md
|
||||||
doc/Resource.md
|
doc/Resource.md
|
||||||
doc/ResourceApi.md
|
doc/ResourceApi.md
|
||||||
doc/ResourceDTO.md
|
doc/ResourceDTO.md
|
||||||
@ -125,8 +138,11 @@ doc/SectionMapAllOfMapTypeMapbox.md
|
|||||||
doc/SectionMapApi.md
|
doc/SectionMapApi.md
|
||||||
doc/SectionQuiz.md
|
doc/SectionQuiz.md
|
||||||
doc/SectionQuizApi.md
|
doc/SectionQuizApi.md
|
||||||
|
doc/SectionStatDTO.md
|
||||||
doc/SectionType.md
|
doc/SectionType.md
|
||||||
doc/SliderDTO.md
|
doc/SliderDTO.md
|
||||||
|
doc/StatsApi.md
|
||||||
|
doc/StatsSummaryDTO.md
|
||||||
doc/TokenDTO.md
|
doc/TokenDTO.md
|
||||||
doc/TranslationAndResourceDTO.md
|
doc/TranslationAndResourceDTO.md
|
||||||
doc/TranslationDTO.md
|
doc/TranslationDTO.md
|
||||||
@ -134,10 +150,12 @@ doc/User.md
|
|||||||
doc/UserApi.md
|
doc/UserApi.md
|
||||||
doc/UserDetailDTO.md
|
doc/UserDetailDTO.md
|
||||||
doc/VideoDTO.md
|
doc/VideoDTO.md
|
||||||
|
doc/VisitEventDTO.md
|
||||||
doc/WeatherDTO.md
|
doc/WeatherDTO.md
|
||||||
doc/WebDTO.md
|
doc/WebDTO.md
|
||||||
git_push.sh
|
git_push.sh
|
||||||
lib/api.dart
|
lib/api.dart
|
||||||
|
lib/api/ai_api.dart
|
||||||
lib/api/application_instance_api.dart
|
lib/api/application_instance_api.dart
|
||||||
lib/api/authentication_api.dart
|
lib/api/authentication_api.dart
|
||||||
lib/api/configuration_api.dart
|
lib/api/configuration_api.dart
|
||||||
@ -149,6 +167,7 @@ lib/api/section_api.dart
|
|||||||
lib/api/section_event_api.dart
|
lib/api/section_event_api.dart
|
||||||
lib/api/section_map_api.dart
|
lib/api/section_map_api.dart
|
||||||
lib/api/section_quiz_api.dart
|
lib/api/section_quiz_api.dart
|
||||||
|
lib/api/stats_api.dart
|
||||||
lib/api/user_api.dart
|
lib/api/user_api.dart
|
||||||
lib/api_client.dart
|
lib/api_client.dart
|
||||||
lib/api_exception.dart
|
lib/api_exception.dart
|
||||||
@ -160,6 +179,12 @@ lib/auth/http_bearer_auth.dart
|
|||||||
lib/auth/oauth.dart
|
lib/auth/oauth.dart
|
||||||
lib/model/agenda_dto.dart
|
lib/model/agenda_dto.dart
|
||||||
lib/model/agenda_dto_all_of_agenda_map_provider.dart
|
lib/model/agenda_dto_all_of_agenda_map_provider.dart
|
||||||
|
lib/model/agenda_event_stat_dto.dart
|
||||||
|
lib/model/ai_card_dto.dart
|
||||||
|
lib/model/ai_chat_message.dart
|
||||||
|
lib/model/ai_chat_request.dart
|
||||||
|
lib/model/ai_chat_response.dart
|
||||||
|
lib/model/ai_chat_response_navigation.dart
|
||||||
lib/model/app_configuration_link.dart
|
lib/model/app_configuration_link.dart
|
||||||
lib/model/app_configuration_link_application_instance.dart
|
lib/model/app_configuration_link_application_instance.dart
|
||||||
lib/model/app_configuration_link_configuration.dart
|
lib/model/app_configuration_link_configuration.dart
|
||||||
@ -181,6 +206,7 @@ lib/model/coordinate.dart
|
|||||||
lib/model/coordinate_equality_comparer.dart
|
lib/model/coordinate_equality_comparer.dart
|
||||||
lib/model/coordinate_sequence.dart
|
lib/model/coordinate_sequence.dart
|
||||||
lib/model/coordinate_sequence_factory.dart
|
lib/model/coordinate_sequence_factory.dart
|
||||||
|
lib/model/day_stat_dto.dart
|
||||||
lib/model/device.dart
|
lib/model/device.dart
|
||||||
lib/model/device_detail_dto.dart
|
lib/model/device_detail_dto.dart
|
||||||
lib/model/device_dto.dart
|
lib/model/device_dto.dart
|
||||||
@ -194,6 +220,7 @@ lib/model/event_agenda_dto_resource.dart
|
|||||||
lib/model/export_configuration_dto.dart
|
lib/model/export_configuration_dto.dart
|
||||||
lib/model/game_dto.dart
|
lib/model/game_dto.dart
|
||||||
lib/model/game_dto_all_of_puzzle_image.dart
|
lib/model/game_dto_all_of_puzzle_image.dart
|
||||||
|
lib/model/game_stat_dto.dart
|
||||||
lib/model/game_types.dart
|
lib/model/game_types.dart
|
||||||
lib/model/geo_point.dart
|
lib/model/geo_point.dart
|
||||||
lib/model/geo_point_dto.dart
|
lib/model/geo_point_dto.dart
|
||||||
@ -231,6 +258,7 @@ lib/model/map_provider.dart
|
|||||||
lib/model/map_type_app.dart
|
lib/model/map_type_app.dart
|
||||||
lib/model/map_type_map_box.dart
|
lib/model/map_type_map_box.dart
|
||||||
lib/model/menu_dto.dart
|
lib/model/menu_dto.dart
|
||||||
|
lib/model/navigation_action_dto.dart
|
||||||
lib/model/nts_geometry_services.dart
|
lib/model/nts_geometry_services.dart
|
||||||
lib/model/nts_geometry_services_coordinate_equality_comparer.dart
|
lib/model/nts_geometry_services_coordinate_equality_comparer.dart
|
||||||
lib/model/nts_geometry_services_geometry_overlay.dart
|
lib/model/nts_geometry_services_geometry_overlay.dart
|
||||||
@ -239,12 +267,14 @@ lib/model/ordered_translation_and_resource_dto.dart
|
|||||||
lib/model/ordinates.dart
|
lib/model/ordinates.dart
|
||||||
lib/model/pdf_dto.dart
|
lib/model/pdf_dto.dart
|
||||||
lib/model/player_message_dto.dart
|
lib/model/player_message_dto.dart
|
||||||
|
lib/model/poi_stat_dto.dart
|
||||||
lib/model/point.dart
|
lib/model/point.dart
|
||||||
lib/model/point_all_of_boundary.dart
|
lib/model/point_all_of_boundary.dart
|
||||||
lib/model/point_all_of_coordinate.dart
|
lib/model/point_all_of_coordinate.dart
|
||||||
lib/model/point_all_of_coordinate_sequence.dart
|
lib/model/point_all_of_coordinate_sequence.dart
|
||||||
lib/model/precision_model.dart
|
lib/model/precision_model.dart
|
||||||
lib/model/precision_models.dart
|
lib/model/precision_models.dart
|
||||||
|
lib/model/problem_details.dart
|
||||||
lib/model/programme_block.dart
|
lib/model/programme_block.dart
|
||||||
lib/model/programme_block_dto.dart
|
lib/model/programme_block_dto.dart
|
||||||
lib/model/question_dto.dart
|
lib/model/question_dto.dart
|
||||||
@ -254,6 +284,7 @@ lib/model/quiz_dto.dart
|
|||||||
lib/model/quiz_question.dart
|
lib/model/quiz_question.dart
|
||||||
lib/model/quiz_question_guided_step.dart
|
lib/model/quiz_question_guided_step.dart
|
||||||
lib/model/quiz_question_section_quiz.dart
|
lib/model/quiz_question_section_quiz.dart
|
||||||
|
lib/model/quiz_stat_dto.dart
|
||||||
lib/model/resource.dart
|
lib/model/resource.dart
|
||||||
lib/model/resource_dto.dart
|
lib/model/resource_dto.dart
|
||||||
lib/model/resource_type.dart
|
lib/model/resource_type.dart
|
||||||
@ -270,14 +301,34 @@ lib/model/section_map_all_of_map_map_type.dart
|
|||||||
lib/model/section_map_all_of_map_resource.dart
|
lib/model/section_map_all_of_map_resource.dart
|
||||||
lib/model/section_map_all_of_map_type_mapbox.dart
|
lib/model/section_map_all_of_map_type_mapbox.dart
|
||||||
lib/model/section_quiz.dart
|
lib/model/section_quiz.dart
|
||||||
|
lib/model/section_stat_dto.dart
|
||||||
lib/model/section_type.dart
|
lib/model/section_type.dart
|
||||||
lib/model/slider_dto.dart
|
lib/model/slider_dto.dart
|
||||||
|
lib/model/stats_summary_dto.dart
|
||||||
lib/model/token_dto.dart
|
lib/model/token_dto.dart
|
||||||
lib/model/translation_and_resource_dto.dart
|
lib/model/translation_and_resource_dto.dart
|
||||||
lib/model/translation_dto.dart
|
lib/model/translation_dto.dart
|
||||||
lib/model/user.dart
|
lib/model/user.dart
|
||||||
lib/model/user_detail_dto.dart
|
lib/model/user_detail_dto.dart
|
||||||
lib/model/video_dto.dart
|
lib/model/video_dto.dart
|
||||||
|
lib/model/visit_event_dto.dart
|
||||||
lib/model/weather_dto.dart
|
lib/model/weather_dto.dart
|
||||||
lib/model/web_dto.dart
|
lib/model/web_dto.dart
|
||||||
pubspec.yaml
|
pubspec.yaml
|
||||||
|
test/agenda_event_stat_dto_test.dart
|
||||||
|
test/ai_api_test.dart
|
||||||
|
test/ai_card_dto_test.dart
|
||||||
|
test/ai_chat_message_test.dart
|
||||||
|
test/ai_chat_request_test.dart
|
||||||
|
test/ai_chat_response_navigation_test.dart
|
||||||
|
test/ai_chat_response_test.dart
|
||||||
|
test/day_stat_dto_test.dart
|
||||||
|
test/game_stat_dto_test.dart
|
||||||
|
test/navigation_action_dto_test.dart
|
||||||
|
test/poi_stat_dto_test.dart
|
||||||
|
test/problem_details_test.dart
|
||||||
|
test/quiz_stat_dto_test.dart
|
||||||
|
test/section_stat_dto_test.dart
|
||||||
|
test/stats_api_test.dart
|
||||||
|
test/stats_summary_dto_test.dart
|
||||||
|
test/visit_event_dto_test.dart
|
||||||
|
|||||||
@ -3,7 +3,7 @@ API Manager Service
|
|||||||
|
|
||||||
This Dart package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
This Dart package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
||||||
|
|
||||||
- API version: Version Alpha
|
- API version: Version Alpha 5.0
|
||||||
- Generator version: 7.9.0
|
- Generator version: 7.9.0
|
||||||
- Build package: org.openapitools.codegen.languages.DartClientCodegen
|
- Build package: org.openapitools.codegen.languages.DartClientCodegen
|
||||||
|
|
||||||
@ -43,15 +43,14 @@ import 'package:manager_api_new/api.dart';
|
|||||||
// TODO Configure OAuth2 access token for authorization: bearer
|
// TODO Configure OAuth2 access token for authorization: bearer
|
||||||
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
|
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
|
||||||
|
|
||||||
final api_instance = ApplicationInstanceApi();
|
final api_instance = AIApi();
|
||||||
final applicationInstanceId = applicationInstanceId_example; // String |
|
final aiChatRequest = AiChatRequest(); // AiChatRequest |
|
||||||
final appConfigurationLinkDTO = AppConfigurationLinkDTO(); // AppConfigurationLinkDTO |
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
final result = api_instance.applicationInstanceAddConfigurationToApplicationInstance(applicationInstanceId, appConfigurationLinkDTO);
|
final result = api_instance.aiChat(aiChatRequest);
|
||||||
print(result);
|
print(result);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
print('Exception when calling ApplicationInstanceApi->applicationInstanceAddConfigurationToApplicationInstance: $e\n');
|
print('Exception when calling AIApi->aiChat: $e\n');
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
@ -62,6 +61,7 @@ All URIs are relative to *https://localhost:5001*
|
|||||||
|
|
||||||
Class | Method | HTTP request | Description
|
Class | Method | HTTP request | Description
|
||||||
------------ | ------------- | ------------- | -------------
|
------------ | ------------- | ------------- | -------------
|
||||||
|
*AIApi* | [**aiChat**](doc//AIApi.md#aichat) | **POST** /api/Ai/chat |
|
||||||
*ApplicationInstanceApi* | [**applicationInstanceAddConfigurationToApplicationInstance**](doc//ApplicationInstanceApi.md#applicationinstanceaddconfigurationtoapplicationinstance) | **POST** /api/ApplicationInstance/{applicationInstanceId}/application-link |
|
*ApplicationInstanceApi* | [**applicationInstanceAddConfigurationToApplicationInstance**](doc//ApplicationInstanceApi.md#applicationinstanceaddconfigurationtoapplicationinstance) | **POST** /api/ApplicationInstance/{applicationInstanceId}/application-link |
|
||||||
*ApplicationInstanceApi* | [**applicationInstanceCreate**](doc//ApplicationInstanceApi.md#applicationinstancecreate) | **POST** /api/ApplicationInstance |
|
*ApplicationInstanceApi* | [**applicationInstanceCreate**](doc//ApplicationInstanceApi.md#applicationinstancecreate) | **POST** /api/ApplicationInstance |
|
||||||
*ApplicationInstanceApi* | [**applicationInstanceDelete**](doc//ApplicationInstanceApi.md#applicationinstancedelete) | **DELETE** /api/ApplicationInstance/{id} |
|
*ApplicationInstanceApi* | [**applicationInstanceDelete**](doc//ApplicationInstanceApi.md#applicationinstancedelete) | **DELETE** /api/ApplicationInstance/{id} |
|
||||||
@ -154,6 +154,8 @@ Class | Method | HTTP request | Description
|
|||||||
*SectionQuizApi* | [**sectionQuizDelete**](doc//SectionQuizApi.md#sectionquizdelete) | **DELETE** /api/SectionQuiz/questions/delete/{quizQuestionId} |
|
*SectionQuizApi* | [**sectionQuizDelete**](doc//SectionQuizApi.md#sectionquizdelete) | **DELETE** /api/SectionQuiz/questions/delete/{quizQuestionId} |
|
||||||
*SectionQuizApi* | [**sectionQuizGetAllQuizQuestionFromSection**](doc//SectionQuizApi.md#sectionquizgetallquizquestionfromsection) | **GET** /api/SectionQuiz/{sectionId}/questions |
|
*SectionQuizApi* | [**sectionQuizGetAllQuizQuestionFromSection**](doc//SectionQuizApi.md#sectionquizgetallquizquestionfromsection) | **GET** /api/SectionQuiz/{sectionId}/questions |
|
||||||
*SectionQuizApi* | [**sectionQuizUpdate**](doc//SectionQuizApi.md#sectionquizupdate) | **PUT** /api/SectionQuiz |
|
*SectionQuizApi* | [**sectionQuizUpdate**](doc//SectionQuizApi.md#sectionquizupdate) | **PUT** /api/SectionQuiz |
|
||||||
|
*StatsApi* | [**statsGetSummary**](doc//StatsApi.md#statsgetsummary) | **GET** /api/Stats/summary |
|
||||||
|
*StatsApi* | [**statsTrackEvent**](doc//StatsApi.md#statstrackevent) | **POST** /api/Stats/event |
|
||||||
*UserApi* | [**userCreateUser**](doc//UserApi.md#usercreateuser) | **POST** /api/User |
|
*UserApi* | [**userCreateUser**](doc//UserApi.md#usercreateuser) | **POST** /api/User |
|
||||||
*UserApi* | [**userDeleteUser**](doc//UserApi.md#userdeleteuser) | **DELETE** /api/User/{id} |
|
*UserApi* | [**userDeleteUser**](doc//UserApi.md#userdeleteuser) | **DELETE** /api/User/{id} |
|
||||||
*UserApi* | [**userGet**](doc//UserApi.md#userget) | **GET** /api/User |
|
*UserApi* | [**userGet**](doc//UserApi.md#userget) | **GET** /api/User |
|
||||||
@ -165,6 +167,12 @@ Class | Method | HTTP request | Description
|
|||||||
|
|
||||||
- [AgendaDTO](doc//AgendaDTO.md)
|
- [AgendaDTO](doc//AgendaDTO.md)
|
||||||
- [AgendaDTOAllOfAgendaMapProvider](doc//AgendaDTOAllOfAgendaMapProvider.md)
|
- [AgendaDTOAllOfAgendaMapProvider](doc//AgendaDTOAllOfAgendaMapProvider.md)
|
||||||
|
- [AgendaEventStatDTO](doc//AgendaEventStatDTO.md)
|
||||||
|
- [AiCardDTO](doc//AiCardDTO.md)
|
||||||
|
- [AiChatMessage](doc//AiChatMessage.md)
|
||||||
|
- [AiChatRequest](doc//AiChatRequest.md)
|
||||||
|
- [AiChatResponse](doc//AiChatResponse.md)
|
||||||
|
- [AiChatResponseNavigation](doc//AiChatResponseNavigation.md)
|
||||||
- [AppConfigurationLink](doc//AppConfigurationLink.md)
|
- [AppConfigurationLink](doc//AppConfigurationLink.md)
|
||||||
- [AppConfigurationLinkApplicationInstance](doc//AppConfigurationLinkApplicationInstance.md)
|
- [AppConfigurationLinkApplicationInstance](doc//AppConfigurationLinkApplicationInstance.md)
|
||||||
- [AppConfigurationLinkConfiguration](doc//AppConfigurationLinkConfiguration.md)
|
- [AppConfigurationLinkConfiguration](doc//AppConfigurationLinkConfiguration.md)
|
||||||
@ -186,6 +194,7 @@ Class | Method | HTTP request | Description
|
|||||||
- [CoordinateEqualityComparer](doc//CoordinateEqualityComparer.md)
|
- [CoordinateEqualityComparer](doc//CoordinateEqualityComparer.md)
|
||||||
- [CoordinateSequence](doc//CoordinateSequence.md)
|
- [CoordinateSequence](doc//CoordinateSequence.md)
|
||||||
- [CoordinateSequenceFactory](doc//CoordinateSequenceFactory.md)
|
- [CoordinateSequenceFactory](doc//CoordinateSequenceFactory.md)
|
||||||
|
- [DayStatDTO](doc//DayStatDTO.md)
|
||||||
- [Device](doc//Device.md)
|
- [Device](doc//Device.md)
|
||||||
- [DeviceDTO](doc//DeviceDTO.md)
|
- [DeviceDTO](doc//DeviceDTO.md)
|
||||||
- [DeviceDetailDTO](doc//DeviceDetailDTO.md)
|
- [DeviceDetailDTO](doc//DeviceDetailDTO.md)
|
||||||
@ -199,6 +208,7 @@ Class | Method | HTTP request | Description
|
|||||||
- [ExportConfigurationDTO](doc//ExportConfigurationDTO.md)
|
- [ExportConfigurationDTO](doc//ExportConfigurationDTO.md)
|
||||||
- [GameDTO](doc//GameDTO.md)
|
- [GameDTO](doc//GameDTO.md)
|
||||||
- [GameDTOAllOfPuzzleImage](doc//GameDTOAllOfPuzzleImage.md)
|
- [GameDTOAllOfPuzzleImage](doc//GameDTOAllOfPuzzleImage.md)
|
||||||
|
- [GameStatDTO](doc//GameStatDTO.md)
|
||||||
- [GameTypes](doc//GameTypes.md)
|
- [GameTypes](doc//GameTypes.md)
|
||||||
- [GeoPoint](doc//GeoPoint.md)
|
- [GeoPoint](doc//GeoPoint.md)
|
||||||
- [GeoPointDTO](doc//GeoPointDTO.md)
|
- [GeoPointDTO](doc//GeoPointDTO.md)
|
||||||
@ -236,6 +246,7 @@ Class | Method | HTTP request | Description
|
|||||||
- [MapTypeApp](doc//MapTypeApp.md)
|
- [MapTypeApp](doc//MapTypeApp.md)
|
||||||
- [MapTypeMapBox](doc//MapTypeMapBox.md)
|
- [MapTypeMapBox](doc//MapTypeMapBox.md)
|
||||||
- [MenuDTO](doc//MenuDTO.md)
|
- [MenuDTO](doc//MenuDTO.md)
|
||||||
|
- [NavigationActionDTO](doc//NavigationActionDTO.md)
|
||||||
- [NtsGeometryServices](doc//NtsGeometryServices.md)
|
- [NtsGeometryServices](doc//NtsGeometryServices.md)
|
||||||
- [NtsGeometryServicesCoordinateEqualityComparer](doc//NtsGeometryServicesCoordinateEqualityComparer.md)
|
- [NtsGeometryServicesCoordinateEqualityComparer](doc//NtsGeometryServicesCoordinateEqualityComparer.md)
|
||||||
- [NtsGeometryServicesGeometryOverlay](doc//NtsGeometryServicesGeometryOverlay.md)
|
- [NtsGeometryServicesGeometryOverlay](doc//NtsGeometryServicesGeometryOverlay.md)
|
||||||
@ -244,12 +255,14 @@ Class | Method | HTTP request | Description
|
|||||||
- [Ordinates](doc//Ordinates.md)
|
- [Ordinates](doc//Ordinates.md)
|
||||||
- [PdfDTO](doc//PdfDTO.md)
|
- [PdfDTO](doc//PdfDTO.md)
|
||||||
- [PlayerMessageDTO](doc//PlayerMessageDTO.md)
|
- [PlayerMessageDTO](doc//PlayerMessageDTO.md)
|
||||||
|
- [PoiStatDTO](doc//PoiStatDTO.md)
|
||||||
- [Point](doc//Point.md)
|
- [Point](doc//Point.md)
|
||||||
- [PointAllOfBoundary](doc//PointAllOfBoundary.md)
|
- [PointAllOfBoundary](doc//PointAllOfBoundary.md)
|
||||||
- [PointAllOfCoordinate](doc//PointAllOfCoordinate.md)
|
- [PointAllOfCoordinate](doc//PointAllOfCoordinate.md)
|
||||||
- [PointAllOfCoordinateSequence](doc//PointAllOfCoordinateSequence.md)
|
- [PointAllOfCoordinateSequence](doc//PointAllOfCoordinateSequence.md)
|
||||||
- [PrecisionModel](doc//PrecisionModel.md)
|
- [PrecisionModel](doc//PrecisionModel.md)
|
||||||
- [PrecisionModels](doc//PrecisionModels.md)
|
- [PrecisionModels](doc//PrecisionModels.md)
|
||||||
|
- [ProblemDetails](doc//ProblemDetails.md)
|
||||||
- [ProgrammeBlock](doc//ProgrammeBlock.md)
|
- [ProgrammeBlock](doc//ProgrammeBlock.md)
|
||||||
- [ProgrammeBlockDTO](doc//ProgrammeBlockDTO.md)
|
- [ProgrammeBlockDTO](doc//ProgrammeBlockDTO.md)
|
||||||
- [QuestionDTO](doc//QuestionDTO.md)
|
- [QuestionDTO](doc//QuestionDTO.md)
|
||||||
@ -259,6 +272,7 @@ Class | Method | HTTP request | Description
|
|||||||
- [QuizQuestion](doc//QuizQuestion.md)
|
- [QuizQuestion](doc//QuizQuestion.md)
|
||||||
- [QuizQuestionGuidedStep](doc//QuizQuestionGuidedStep.md)
|
- [QuizQuestionGuidedStep](doc//QuizQuestionGuidedStep.md)
|
||||||
- [QuizQuestionSectionQuiz](doc//QuizQuestionSectionQuiz.md)
|
- [QuizQuestionSectionQuiz](doc//QuizQuestionSectionQuiz.md)
|
||||||
|
- [QuizStatDTO](doc//QuizStatDTO.md)
|
||||||
- [Resource](doc//Resource.md)
|
- [Resource](doc//Resource.md)
|
||||||
- [ResourceDTO](doc//ResourceDTO.md)
|
- [ResourceDTO](doc//ResourceDTO.md)
|
||||||
- [ResourceType](doc//ResourceType.md)
|
- [ResourceType](doc//ResourceType.md)
|
||||||
@ -275,14 +289,17 @@ Class | Method | HTTP request | Description
|
|||||||
- [SectionMapAllOfMapResource](doc//SectionMapAllOfMapResource.md)
|
- [SectionMapAllOfMapResource](doc//SectionMapAllOfMapResource.md)
|
||||||
- [SectionMapAllOfMapTypeMapbox](doc//SectionMapAllOfMapTypeMapbox.md)
|
- [SectionMapAllOfMapTypeMapbox](doc//SectionMapAllOfMapTypeMapbox.md)
|
||||||
- [SectionQuiz](doc//SectionQuiz.md)
|
- [SectionQuiz](doc//SectionQuiz.md)
|
||||||
|
- [SectionStatDTO](doc//SectionStatDTO.md)
|
||||||
- [SectionType](doc//SectionType.md)
|
- [SectionType](doc//SectionType.md)
|
||||||
- [SliderDTO](doc//SliderDTO.md)
|
- [SliderDTO](doc//SliderDTO.md)
|
||||||
|
- [StatsSummaryDTO](doc//StatsSummaryDTO.md)
|
||||||
- [TokenDTO](doc//TokenDTO.md)
|
- [TokenDTO](doc//TokenDTO.md)
|
||||||
- [TranslationAndResourceDTO](doc//TranslationAndResourceDTO.md)
|
- [TranslationAndResourceDTO](doc//TranslationAndResourceDTO.md)
|
||||||
- [TranslationDTO](doc//TranslationDTO.md)
|
- [TranslationDTO](doc//TranslationDTO.md)
|
||||||
- [User](doc//User.md)
|
- [User](doc//User.md)
|
||||||
- [UserDetailDTO](doc//UserDetailDTO.md)
|
- [UserDetailDTO](doc//UserDetailDTO.md)
|
||||||
- [VideoDTO](doc//VideoDTO.md)
|
- [VideoDTO](doc//VideoDTO.md)
|
||||||
|
- [VisitEventDTO](doc//VisitEventDTO.md)
|
||||||
- [WeatherDTO](doc//WeatherDTO.md)
|
- [WeatherDTO](doc//WeatherDTO.md)
|
||||||
- [WebDTO](doc//WebDTO.md)
|
- [WebDTO](doc//WebDTO.md)
|
||||||
|
|
||||||
|
|||||||
57
manager_api_new/doc/AIApi.md
Normal file
57
manager_api_new/doc/AIApi.md
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
# manager_api_new.api.AIApi
|
||||||
|
|
||||||
|
## Load the API package
|
||||||
|
```dart
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
```
|
||||||
|
|
||||||
|
All URIs are relative to *http://192.168.31.228:5000*
|
||||||
|
|
||||||
|
Method | HTTP request | Description
|
||||||
|
------------- | ------------- | -------------
|
||||||
|
[**aiChat**](AIApi.md#aichat) | **POST** /api/Ai/chat |
|
||||||
|
|
||||||
|
|
||||||
|
# **aiChat**
|
||||||
|
> AiChatResponse aiChat(aiChatRequest)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Example
|
||||||
|
```dart
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
// TODO Configure OAuth2 access token for authorization: bearer
|
||||||
|
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
|
||||||
|
|
||||||
|
final api_instance = AIApi();
|
||||||
|
final aiChatRequest = AiChatRequest(); // AiChatRequest |
|
||||||
|
|
||||||
|
try {
|
||||||
|
final result = api_instance.aiChat(aiChatRequest);
|
||||||
|
print(result);
|
||||||
|
} catch (e) {
|
||||||
|
print('Exception when calling AIApi->aiChat: $e\n');
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------- | ------------- | ------------- | -------------
|
||||||
|
**aiChatRequest** | [**AiChatRequest**](AiChatRequest.md)| |
|
||||||
|
|
||||||
|
### Return type
|
||||||
|
|
||||||
|
[**AiChatResponse**](AiChatResponse.md)
|
||||||
|
|
||||||
|
### Authorization
|
||||||
|
|
||||||
|
[bearer](../README.md#bearer)
|
||||||
|
|
||||||
|
### HTTP request headers
|
||||||
|
|
||||||
|
- **Content-Type**: application/json
|
||||||
|
- **Accept**: application/json
|
||||||
|
|
||||||
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||||
|
|
||||||
17
manager_api_new/doc/AgendaEventStatDTO.md
Normal file
17
manager_api_new/doc/AgendaEventStatDTO.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# manager_api_new.model.AgendaEventStatDTO
|
||||||
|
|
||||||
|
## Load the model package
|
||||||
|
```dart
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
```
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**eventId** | **String** | | [optional]
|
||||||
|
**eventTitle** | **String** | | [optional]
|
||||||
|
**taps** | **int** | | [optional]
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
17
manager_api_new/doc/AiCardDTO.md
Normal file
17
manager_api_new/doc/AiCardDTO.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# manager_api_new.model.AiCardDTO
|
||||||
|
|
||||||
|
## Load the model package
|
||||||
|
```dart
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
```
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**title** | **String** | | [optional]
|
||||||
|
**subtitle** | **String** | | [optional]
|
||||||
|
**icon** | **String** | | [optional]
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
16
manager_api_new/doc/AiChatMessage.md
Normal file
16
manager_api_new/doc/AiChatMessage.md
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# manager_api_new.model.AiChatMessage
|
||||||
|
|
||||||
|
## Load the model package
|
||||||
|
```dart
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
```
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**role** | **String** | | [optional]
|
||||||
|
**content** | **String** | | [optional]
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
20
manager_api_new/doc/AiChatRequest.md
Normal file
20
manager_api_new/doc/AiChatRequest.md
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# manager_api_new.model.AiChatRequest
|
||||||
|
|
||||||
|
## Load the model package
|
||||||
|
```dart
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
```
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**message** | **String** | | [optional]
|
||||||
|
**instanceId** | **String** | | [optional]
|
||||||
|
**appType** | [**AppType**](AppType.md) | | [optional]
|
||||||
|
**configurationId** | **String** | | [optional]
|
||||||
|
**language** | **String** | | [optional]
|
||||||
|
**history** | [**List<AiChatMessage>**](AiChatMessage.md) | | [optional] [default to const []]
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
17
manager_api_new/doc/AiChatResponse.md
Normal file
17
manager_api_new/doc/AiChatResponse.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# manager_api_new.model.AiChatResponse
|
||||||
|
|
||||||
|
## Load the model package
|
||||||
|
```dart
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
```
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**reply** | **String** | | [optional]
|
||||||
|
**cards** | [**List<AiCardDTO>**](AiCardDTO.md) | | [optional] [default to const []]
|
||||||
|
**navigation** | [**AiChatResponseNavigation**](AiChatResponseNavigation.md) | | [optional]
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
17
manager_api_new/doc/AiChatResponseNavigation.md
Normal file
17
manager_api_new/doc/AiChatResponseNavigation.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# manager_api_new.model.AiChatResponseNavigation
|
||||||
|
|
||||||
|
## Load the model package
|
||||||
|
```dart
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
```
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**sectionId** | **String** | | [optional]
|
||||||
|
**sectionTitle** | **String** | | [optional]
|
||||||
|
**sectionType** | **String** | | [optional]
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
@ -22,6 +22,7 @@ Name | Type | Description | Notes
|
|||||||
**languages** | **List<String>** | | [optional] [default to const []]
|
**languages** | **List<String>** | | [optional] [default to const []]
|
||||||
**sectionEventId** | **String** | | [optional]
|
**sectionEventId** | **String** | | [optional]
|
||||||
**sectionEvent** | [**ApplicationInstanceSectionEvent**](ApplicationInstanceSectionEvent.md) | | [optional]
|
**sectionEvent** | [**ApplicationInstanceSectionEvent**](ApplicationInstanceSectionEvent.md) | | [optional]
|
||||||
|
**isAssistant** | **bool** | | [optional]
|
||||||
|
|
||||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|||||||
@ -22,6 +22,7 @@ Name | Type | Description | Notes
|
|||||||
**languages** | **List<String>** | | [optional] [default to const []]
|
**languages** | **List<String>** | | [optional] [default to const []]
|
||||||
**sectionEventId** | **String** | | [optional]
|
**sectionEventId** | **String** | | [optional]
|
||||||
**sectionEvent** | [**ApplicationInstanceSectionEvent**](ApplicationInstanceSectionEvent.md) | | [optional]
|
**sectionEvent** | [**ApplicationInstanceSectionEvent**](ApplicationInstanceSectionEvent.md) | | [optional]
|
||||||
|
**isAssistant** | **bool** | | [optional]
|
||||||
|
|
||||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|||||||
@ -22,6 +22,8 @@ Name | Type | Description | Notes
|
|||||||
**languages** | **List<String>** | | [optional] [default to const []]
|
**languages** | **List<String>** | | [optional] [default to const []]
|
||||||
**sectionEventId** | **String** | | [optional]
|
**sectionEventId** | **String** | | [optional]
|
||||||
**sectionEventDTO** | [**ApplicationInstanceDTOSectionEventDTO**](ApplicationInstanceDTOSectionEventDTO.md) | | [optional]
|
**sectionEventDTO** | [**ApplicationInstanceDTOSectionEventDTO**](ApplicationInstanceDTOSectionEventDTO.md) | | [optional]
|
||||||
|
**isAssistant** | **bool** | | [optional]
|
||||||
|
**isStatistic** | **bool** | | [optional]
|
||||||
|
|
||||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|||||||
18
manager_api_new/doc/DayStatDTO.md
Normal file
18
manager_api_new/doc/DayStatDTO.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# manager_api_new.model.DayStatDTO
|
||||||
|
|
||||||
|
## Load the model package
|
||||||
|
```dart
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
```
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**date** | **String** | | [optional]
|
||||||
|
**total** | **int** | | [optional]
|
||||||
|
**mobile** | **int** | | [optional]
|
||||||
|
**tablet** | **int** | | [optional]
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
@ -34,6 +34,7 @@ Name | Type | Description | Notes
|
|||||||
**rows** | **int** | | [optional]
|
**rows** | **int** | | [optional]
|
||||||
**cols** | **int** | | [optional]
|
**cols** | **int** | | [optional]
|
||||||
**gameType** | [**GameTypes**](GameTypes.md) | | [optional]
|
**gameType** | [**GameTypes**](GameTypes.md) | | [optional]
|
||||||
|
**guidedPaths** | [**List<GuidedPathDTO>**](GuidedPathDTO.md) | | [optional] [default to const []]
|
||||||
|
|
||||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|||||||
17
manager_api_new/doc/GameStatDTO.md
Normal file
17
manager_api_new/doc/GameStatDTO.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# manager_api_new.model.GameStatDTO
|
||||||
|
|
||||||
|
## Load the model package
|
||||||
|
```dart
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
```
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**gameType** | **String** | | [optional]
|
||||||
|
**completions** | **int** | | [optional]
|
||||||
|
**avgDurationSeconds** | **int** | | [optional]
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
@ -14,6 +14,7 @@ Name | Type | Description | Notes
|
|||||||
**description** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []]
|
**description** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []]
|
||||||
**sectionMapId** | **String** | | [optional]
|
**sectionMapId** | **String** | | [optional]
|
||||||
**sectionEventId** | **String** | | [optional]
|
**sectionEventId** | **String** | | [optional]
|
||||||
|
**sectionGameId** | **String** | | [optional]
|
||||||
**isLinear** | **bool** | | [optional]
|
**isLinear** | **bool** | | [optional]
|
||||||
**requireSuccessToAdvance** | **bool** | | [optional]
|
**requireSuccessToAdvance** | **bool** | | [optional]
|
||||||
**hideNextStepsUntilComplete** | **bool** | | [optional]
|
**hideNextStepsUntilComplete** | **bool** | | [optional]
|
||||||
|
|||||||
@ -18,6 +18,7 @@ Name | Type | Description | Notes
|
|||||||
**isTablet** | **bool** | | [optional]
|
**isTablet** | **bool** | | [optional]
|
||||||
**isWeb** | **bool** | | [optional]
|
**isWeb** | **bool** | | [optional]
|
||||||
**isVR** | **bool** | | [optional]
|
**isVR** | **bool** | | [optional]
|
||||||
|
**isAssistant** | **bool** | | [optional]
|
||||||
|
|
||||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|||||||
@ -18,6 +18,7 @@ Name | Type | Description | Notes
|
|||||||
**isTablet** | **bool** | | [optional]
|
**isTablet** | **bool** | | [optional]
|
||||||
**isWeb** | **bool** | | [optional]
|
**isWeb** | **bool** | | [optional]
|
||||||
**isVR** | **bool** | | [optional]
|
**isVR** | **bool** | | [optional]
|
||||||
|
**isAssistant** | **bool** | | [optional]
|
||||||
**applicationInstanceDTOs** | [**List<ApplicationInstanceDTO>**](ApplicationInstanceDTO.md) | | [optional] [default to const []]
|
**applicationInstanceDTOs** | [**List<ApplicationInstanceDTO>**](ApplicationInstanceDTO.md) | | [optional] [default to const []]
|
||||||
|
|
||||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|||||||
@ -37,6 +37,8 @@ Name | Type | Description | Notes
|
|||||||
**categories** | [**List<CategorieDTO>**](CategorieDTO.md) | | [optional] [default to const []]
|
**categories** | [**List<CategorieDTO>**](CategorieDTO.md) | | [optional] [default to const []]
|
||||||
**centerLatitude** | **String** | | [optional]
|
**centerLatitude** | **String** | | [optional]
|
||||||
**centerLongitude** | **String** | | [optional]
|
**centerLongitude** | **String** | | [optional]
|
||||||
|
**isParcours** | **bool** | | [optional]
|
||||||
|
**guidedPaths** | [**List<GuidedPathDTO>**](GuidedPathDTO.md) | | [optional] [default to const []]
|
||||||
|
|
||||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|||||||
17
manager_api_new/doc/NavigationActionDTO.md
Normal file
17
manager_api_new/doc/NavigationActionDTO.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# manager_api_new.model.NavigationActionDTO
|
||||||
|
|
||||||
|
## Load the model package
|
||||||
|
```dart
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
```
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**sectionId** | **String** | | [optional]
|
||||||
|
**sectionTitle** | **String** | | [optional]
|
||||||
|
**sectionType** | **String** | | [optional]
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
18
manager_api_new/doc/PoiStatDTO.md
Normal file
18
manager_api_new/doc/PoiStatDTO.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# manager_api_new.model.PoiStatDTO
|
||||||
|
|
||||||
|
## Load the model package
|
||||||
|
```dart
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
```
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**geoPointId** | **int** | | [optional]
|
||||||
|
**title** | **String** | | [optional]
|
||||||
|
**taps** | **int** | | [optional]
|
||||||
|
**sectionId** | **String** | | [optional]
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
20
manager_api_new/doc/ProblemDetails.md
Normal file
20
manager_api_new/doc/ProblemDetails.md
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# manager_api_new.model.ProblemDetails
|
||||||
|
|
||||||
|
## Load the model package
|
||||||
|
```dart
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
```
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**type** | **String** | | [optional]
|
||||||
|
**title** | **String** | | [optional]
|
||||||
|
**status** | **int** | | [optional]
|
||||||
|
**detail** | **String** | | [optional]
|
||||||
|
**instance** | **String** | | [optional]
|
||||||
|
**extensions** | [**Map<String, Object>**](Object.md) | | [optional] [default to const {}]
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
19
manager_api_new/doc/QuizStatDTO.md
Normal file
19
manager_api_new/doc/QuizStatDTO.md
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# manager_api_new.model.QuizStatDTO
|
||||||
|
|
||||||
|
## Load the model package
|
||||||
|
```dart
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
```
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**sectionId** | **String** | | [optional]
|
||||||
|
**sectionTitle** | **String** | | [optional]
|
||||||
|
**avgScore** | **double** | | [optional]
|
||||||
|
**totalQuestions** | **int** | | [optional]
|
||||||
|
**completions** | **int** | | [optional]
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
18
manager_api_new/doc/SectionStatDTO.md
Normal file
18
manager_api_new/doc/SectionStatDTO.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# manager_api_new.model.SectionStatDTO
|
||||||
|
|
||||||
|
## Load the model package
|
||||||
|
```dart
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
```
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**sectionId** | **String** | | [optional]
|
||||||
|
**sectionTitle** | **String** | | [optional]
|
||||||
|
**views** | **int** | | [optional]
|
||||||
|
**avgDurationSeconds** | **int** | | [optional]
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
106
manager_api_new/doc/StatsApi.md
Normal file
106
manager_api_new/doc/StatsApi.md
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
# manager_api_new.api.StatsApi
|
||||||
|
|
||||||
|
## Load the API package
|
||||||
|
```dart
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
```
|
||||||
|
|
||||||
|
All URIs are relative to *http://192.168.31.228:5000*
|
||||||
|
|
||||||
|
Method | HTTP request | Description
|
||||||
|
------------- | ------------- | -------------
|
||||||
|
[**statsGetSummary**](StatsApi.md#statsgetsummary) | **GET** /api/Stats/summary |
|
||||||
|
[**statsTrackEvent**](StatsApi.md#statstrackevent) | **POST** /api/Stats/event |
|
||||||
|
|
||||||
|
|
||||||
|
# **statsGetSummary**
|
||||||
|
> StatsSummaryDTO statsGetSummary(instanceId, from, to, appType)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Example
|
||||||
|
```dart
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
// TODO Configure OAuth2 access token for authorization: bearer
|
||||||
|
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
|
||||||
|
|
||||||
|
final api_instance = StatsApi();
|
||||||
|
final instanceId = instanceId_example; // String |
|
||||||
|
final from = 2013-10-20T19:20:30+01:00; // DateTime |
|
||||||
|
final to = 2013-10-20T19:20:30+01:00; // DateTime |
|
||||||
|
final appType = appType_example; // String |
|
||||||
|
|
||||||
|
try {
|
||||||
|
final result = api_instance.statsGetSummary(instanceId, from, to, appType);
|
||||||
|
print(result);
|
||||||
|
} catch (e) {
|
||||||
|
print('Exception when calling StatsApi->statsGetSummary: $e\n');
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------- | ------------- | ------------- | -------------
|
||||||
|
**instanceId** | **String**| | [optional]
|
||||||
|
**from** | **DateTime**| | [optional]
|
||||||
|
**to** | **DateTime**| | [optional]
|
||||||
|
**appType** | **String**| | [optional]
|
||||||
|
|
||||||
|
### Return type
|
||||||
|
|
||||||
|
[**StatsSummaryDTO**](StatsSummaryDTO.md)
|
||||||
|
|
||||||
|
### Authorization
|
||||||
|
|
||||||
|
[bearer](../README.md#bearer)
|
||||||
|
|
||||||
|
### HTTP request headers
|
||||||
|
|
||||||
|
- **Content-Type**: Not defined
|
||||||
|
- **Accept**: application/json
|
||||||
|
|
||||||
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
# **statsTrackEvent**
|
||||||
|
> statsTrackEvent(visitEventDTO)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Example
|
||||||
|
```dart
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
// TODO Configure OAuth2 access token for authorization: bearer
|
||||||
|
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
|
||||||
|
|
||||||
|
final api_instance = StatsApi();
|
||||||
|
final visitEventDTO = VisitEventDTO(); // VisitEventDTO |
|
||||||
|
|
||||||
|
try {
|
||||||
|
api_instance.statsTrackEvent(visitEventDTO);
|
||||||
|
} catch (e) {
|
||||||
|
print('Exception when calling StatsApi->statsTrackEvent: $e\n');
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------- | ------------- | ------------- | -------------
|
||||||
|
**visitEventDTO** | [**VisitEventDTO**](VisitEventDTO.md)| |
|
||||||
|
|
||||||
|
### Return type
|
||||||
|
|
||||||
|
void (empty response body)
|
||||||
|
|
||||||
|
### Authorization
|
||||||
|
|
||||||
|
[bearer](../README.md#bearer)
|
||||||
|
|
||||||
|
### HTTP request headers
|
||||||
|
|
||||||
|
- **Content-Type**: application/json
|
||||||
|
- **Accept**: application/json
|
||||||
|
|
||||||
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||||
|
|
||||||
24
manager_api_new/doc/StatsSummaryDTO.md
Normal file
24
manager_api_new/doc/StatsSummaryDTO.md
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# manager_api_new.model.StatsSummaryDTO
|
||||||
|
|
||||||
|
## Load the model package
|
||||||
|
```dart
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
```
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**totalSessions** | **int** | | [optional]
|
||||||
|
**avgVisitDurationSeconds** | **int** | | [optional]
|
||||||
|
**topSections** | [**List<SectionStatDTO>**](SectionStatDTO.md) | | [optional] [default to const []]
|
||||||
|
**visitsByDay** | [**List<DayStatDTO>**](DayStatDTO.md) | | [optional] [default to const []]
|
||||||
|
**languageDistribution** | **Map<String, int>** | | [optional] [default to const {}]
|
||||||
|
**appTypeDistribution** | **Map<String, int>** | | [optional] [default to const {}]
|
||||||
|
**topPois** | [**List<PoiStatDTO>**](PoiStatDTO.md) | | [optional] [default to const []]
|
||||||
|
**topAgendaEvents** | [**List<AgendaEventStatDTO>**](AgendaEventStatDTO.md) | | [optional] [default to const []]
|
||||||
|
**quizStats** | [**List<QuizStatDTO>**](QuizStatDTO.md) | | [optional] [default to const []]
|
||||||
|
**gameStats** | [**List<GameStatDTO>**](GameStatDTO.md) | | [optional] [default to const []]
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
24
manager_api_new/doc/VisitEventDTO.md
Normal file
24
manager_api_new/doc/VisitEventDTO.md
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# manager_api_new.model.VisitEventDTO
|
||||||
|
|
||||||
|
## Load the model package
|
||||||
|
```dart
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
```
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**instanceId** | **String** | | [optional]
|
||||||
|
**configurationId** | **String** | | [optional]
|
||||||
|
**sectionId** | **String** | | [optional]
|
||||||
|
**sessionId** | **String** | | [optional]
|
||||||
|
**eventType** | **String** | | [optional]
|
||||||
|
**appType** | **String** | | [optional]
|
||||||
|
**language** | **String** | | [optional]
|
||||||
|
**durationSeconds** | **int** | | [optional]
|
||||||
|
**metadata** | **String** | | [optional]
|
||||||
|
**timestamp** | [**DateTime**](DateTime.md) | | [optional]
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
@ -28,6 +28,7 @@ part 'auth/oauth.dart';
|
|||||||
part 'auth/http_basic_auth.dart';
|
part 'auth/http_basic_auth.dart';
|
||||||
part 'auth/http_bearer_auth.dart';
|
part 'auth/http_bearer_auth.dart';
|
||||||
|
|
||||||
|
part 'api/ai_api.dart';
|
||||||
part 'api/application_instance_api.dart';
|
part 'api/application_instance_api.dart';
|
||||||
part 'api/authentication_api.dart';
|
part 'api/authentication_api.dart';
|
||||||
part 'api/configuration_api.dart';
|
part 'api/configuration_api.dart';
|
||||||
@ -39,10 +40,16 @@ part 'api/section_agenda_api.dart';
|
|||||||
part 'api/section_event_api.dart';
|
part 'api/section_event_api.dart';
|
||||||
part 'api/section_map_api.dart';
|
part 'api/section_map_api.dart';
|
||||||
part 'api/section_quiz_api.dart';
|
part 'api/section_quiz_api.dart';
|
||||||
|
part 'api/stats_api.dart';
|
||||||
part 'api/user_api.dart';
|
part 'api/user_api.dart';
|
||||||
|
|
||||||
part 'model/agenda_dto.dart';
|
part 'model/agenda_dto.dart';
|
||||||
part 'model/agenda_dto_all_of_agenda_map_provider.dart';
|
part 'model/agenda_dto_all_of_agenda_map_provider.dart';
|
||||||
|
part 'model/ai_card_dto.dart';
|
||||||
|
part 'model/ai_chat_message.dart';
|
||||||
|
part 'model/ai_chat_request.dart';
|
||||||
|
part 'model/ai_chat_response.dart';
|
||||||
|
part 'model/ai_chat_response_navigation.dart';
|
||||||
part 'model/app_configuration_link.dart';
|
part 'model/app_configuration_link.dart';
|
||||||
part 'model/app_configuration_link_application_instance.dart';
|
part 'model/app_configuration_link_application_instance.dart';
|
||||||
part 'model/app_configuration_link_configuration.dart';
|
part 'model/app_configuration_link_configuration.dart';
|
||||||
@ -51,6 +58,7 @@ part 'model/app_configuration_link_dto_configuration.dart';
|
|||||||
part 'model/app_configuration_link_dto_device.dart';
|
part 'model/app_configuration_link_dto_device.dart';
|
||||||
part 'model/app_configuration_link_device.dart';
|
part 'model/app_configuration_link_device.dart';
|
||||||
part 'model/app_type.dart';
|
part 'model/app_type.dart';
|
||||||
|
part 'model/app_type_extensions.dart';
|
||||||
part 'model/application_instance.dart';
|
part 'model/application_instance.dart';
|
||||||
part 'model/application_instance_dto.dart';
|
part 'model/application_instance_dto.dart';
|
||||||
part 'model/application_instance_dto_section_event_dto.dart';
|
part 'model/application_instance_dto_section_event_dto.dart';
|
||||||
@ -114,6 +122,7 @@ part 'model/map_provider.dart';
|
|||||||
part 'model/map_type_app.dart';
|
part 'model/map_type_app.dart';
|
||||||
part 'model/map_type_map_box.dart';
|
part 'model/map_type_map_box.dart';
|
||||||
part 'model/menu_dto.dart';
|
part 'model/menu_dto.dart';
|
||||||
|
part 'model/navigation_action_dto.dart';
|
||||||
part 'model/nts_geometry_services.dart';
|
part 'model/nts_geometry_services.dart';
|
||||||
part 'model/nts_geometry_services_coordinate_equality_comparer.dart';
|
part 'model/nts_geometry_services_coordinate_equality_comparer.dart';
|
||||||
part 'model/nts_geometry_services_geometry_overlay.dart';
|
part 'model/nts_geometry_services_geometry_overlay.dart';
|
||||||
@ -128,6 +137,7 @@ part 'model/point_all_of_coordinate.dart';
|
|||||||
part 'model/point_all_of_coordinate_sequence.dart';
|
part 'model/point_all_of_coordinate_sequence.dart';
|
||||||
part 'model/precision_model.dart';
|
part 'model/precision_model.dart';
|
||||||
part 'model/precision_models.dart';
|
part 'model/precision_models.dart';
|
||||||
|
part 'model/problem_details.dart';
|
||||||
part 'model/programme_block.dart';
|
part 'model/programme_block.dart';
|
||||||
part 'model/programme_block_dto.dart';
|
part 'model/programme_block_dto.dart';
|
||||||
part 'model/question_dto.dart';
|
part 'model/question_dto.dart';
|
||||||
@ -155,12 +165,14 @@ part 'model/section_map_all_of_map_type_mapbox.dart';
|
|||||||
part 'model/section_quiz.dart';
|
part 'model/section_quiz.dart';
|
||||||
part 'model/section_type.dart';
|
part 'model/section_type.dart';
|
||||||
part 'model/slider_dto.dart';
|
part 'model/slider_dto.dart';
|
||||||
|
part 'model/stats_summary_dto.dart';
|
||||||
part 'model/token_dto.dart';
|
part 'model/token_dto.dart';
|
||||||
part 'model/translation_and_resource_dto.dart';
|
part 'model/translation_and_resource_dto.dart';
|
||||||
part 'model/translation_dto.dart';
|
part 'model/translation_dto.dart';
|
||||||
part 'model/user.dart';
|
part 'model/user.dart';
|
||||||
part 'model/user_detail_dto.dart';
|
part 'model/user_detail_dto.dart';
|
||||||
part 'model/video_dto.dart';
|
part 'model/video_dto.dart';
|
||||||
|
part 'model/visit_event_dto.dart';
|
||||||
part 'model/weather_dto.dart';
|
part 'model/weather_dto.dart';
|
||||||
part 'model/web_dto.dart';
|
part 'model/web_dto.dart';
|
||||||
|
|
||||||
|
|||||||
72
manager_api_new/lib/api/ai_api.dart
Normal file
72
manager_api_new/lib/api/ai_api.dart
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
part of openapi.api;
|
||||||
|
|
||||||
|
class AIApi {
|
||||||
|
AIApi([ApiClient? apiClient]) : apiClient = apiClient ?? defaultApiClient;
|
||||||
|
|
||||||
|
final ApiClient apiClient;
|
||||||
|
|
||||||
|
/// Performs an HTTP 'POST /api/Ai/chat' operation and returns the [Response].
|
||||||
|
/// Parameters:
|
||||||
|
///
|
||||||
|
/// * [AiChatRequest] aiChatRequest (required):
|
||||||
|
Future<Response> aiChatWithHttpInfo(
|
||||||
|
AiChatRequest aiChatRequest,
|
||||||
|
) async {
|
||||||
|
// ignore: prefer_const_declarations
|
||||||
|
final path = r'/api/Ai/chat';
|
||||||
|
|
||||||
|
// ignore: prefer_final_locals
|
||||||
|
Object? postBody = aiChatRequest;
|
||||||
|
|
||||||
|
final queryParams = <QueryParam>[];
|
||||||
|
final headerParams = <String, String>{};
|
||||||
|
final formParams = <String, String>{};
|
||||||
|
|
||||||
|
const contentTypes = <String>['application/json'];
|
||||||
|
|
||||||
|
return apiClient.invokeAPI(
|
||||||
|
path,
|
||||||
|
'POST',
|
||||||
|
queryParams,
|
||||||
|
postBody,
|
||||||
|
headerParams,
|
||||||
|
formParams,
|
||||||
|
contentTypes.isEmpty ? null : contentTypes.first,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Parameters:
|
||||||
|
///
|
||||||
|
/// * [AiChatRequest] aiChatRequest (required):
|
||||||
|
Future<AiChatResponse?> aiChat(
|
||||||
|
AiChatRequest aiChatRequest,
|
||||||
|
) async {
|
||||||
|
final response = await aiChatWithHttpInfo(
|
||||||
|
aiChatRequest,
|
||||||
|
);
|
||||||
|
if (response.statusCode >= HttpStatus.badRequest) {
|
||||||
|
throw ApiException(response.statusCode, await _decodeBodyBytes(response));
|
||||||
|
}
|
||||||
|
// When a remote server returns no body with a status of 204, we shall not decode it.
|
||||||
|
// At the time of writing this, `dart:convert` will throw an "Unexpected end of input"
|
||||||
|
// FormatException when trying to decode an empty string.
|
||||||
|
if (response.body.isNotEmpty &&
|
||||||
|
response.statusCode != HttpStatus.noContent) {
|
||||||
|
return await apiClient.deserializeAsync(
|
||||||
|
await _decodeBodyBytes(response),
|
||||||
|
'AiChatResponse',
|
||||||
|
) as AiChatResponse;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
93
manager_api_new/lib/api/stats_api.dart
Normal file
93
manager_api_new/lib/api/stats_api.dart
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
part of openapi.api;
|
||||||
|
|
||||||
|
class StatsApi {
|
||||||
|
StatsApi([ApiClient? apiClient])
|
||||||
|
: apiClient = apiClient ?? defaultApiClient;
|
||||||
|
|
||||||
|
final ApiClient apiClient;
|
||||||
|
|
||||||
|
/// Track a single visit event (anonymous)
|
||||||
|
Future<Response> statsTrackEventWithHttpInfo(VisitEventDTO visitEventDTO) async {
|
||||||
|
const path = r'/api/Stats/event';
|
||||||
|
|
||||||
|
final queryParams = <QueryParam>[];
|
||||||
|
final headerParams = <String, String>{};
|
||||||
|
final formParams = <String, String>{};
|
||||||
|
|
||||||
|
const contentTypes = <String>['application/json'];
|
||||||
|
|
||||||
|
return apiClient.invokeAPI(
|
||||||
|
path,
|
||||||
|
'POST',
|
||||||
|
queryParams,
|
||||||
|
visitEventDTO,
|
||||||
|
headerParams,
|
||||||
|
formParams,
|
||||||
|
contentTypes.isEmpty ? null : contentTypes.first,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> statsTrackEvent(VisitEventDTO visitEventDTO) async {
|
||||||
|
final response = await statsTrackEventWithHttpInfo(visitEventDTO);
|
||||||
|
if (response.statusCode >= HttpStatus.badRequest) {
|
||||||
|
throw ApiException(response.statusCode, await _decodeBodyBytes(response));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Get aggregated statistics for an instance
|
||||||
|
Future<Response> statsGetSummaryWithHttpInfo(
|
||||||
|
String instanceId, {
|
||||||
|
DateTime? from,
|
||||||
|
DateTime? to,
|
||||||
|
String? appType,
|
||||||
|
}) async {
|
||||||
|
const path = r'/api/Stats/summary';
|
||||||
|
|
||||||
|
final queryParams = <QueryParam>[
|
||||||
|
QueryParam(r'instanceId', instanceId),
|
||||||
|
if (from != null) QueryParam(r'from', parameterToString(from)),
|
||||||
|
if (to != null) QueryParam(r'to', parameterToString(to)),
|
||||||
|
if (appType != null) QueryParam(r'appType', appType),
|
||||||
|
];
|
||||||
|
final headerParams = <String, String>{};
|
||||||
|
final formParams = <String, String>{};
|
||||||
|
|
||||||
|
const contentTypes = <String>[];
|
||||||
|
|
||||||
|
return apiClient.invokeAPI(
|
||||||
|
path,
|
||||||
|
'GET',
|
||||||
|
queryParams,
|
||||||
|
null,
|
||||||
|
headerParams,
|
||||||
|
formParams,
|
||||||
|
contentTypes.isEmpty ? null : contentTypes.first,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<StatsSummaryDTO?> statsGetSummary(
|
||||||
|
String instanceId, {
|
||||||
|
DateTime? from,
|
||||||
|
DateTime? to,
|
||||||
|
String? appType,
|
||||||
|
}) async {
|
||||||
|
final response = await statsGetSummaryWithHttpInfo(instanceId, from: from, to: to, appType: appType);
|
||||||
|
if (response.statusCode >= HttpStatus.badRequest) {
|
||||||
|
throw ApiException(response.statusCode, await _decodeBodyBytes(response));
|
||||||
|
}
|
||||||
|
if (response.body.isNotEmpty && response.statusCode != HttpStatus.noContent) {
|
||||||
|
return await apiClient.deserializeAsync(
|
||||||
|
await _decodeBodyBytes(response),
|
||||||
|
'StatsSummaryDTO',
|
||||||
|
) as StatsSummaryDTO;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -233,6 +233,18 @@ class ApiClient {
|
|||||||
return AgendaDTO.fromJson(value);
|
return AgendaDTO.fromJson(value);
|
||||||
case 'AgendaDTOAllOfAgendaMapProvider':
|
case 'AgendaDTOAllOfAgendaMapProvider':
|
||||||
return AgendaDTOAllOfAgendaMapProvider.fromJson(value);
|
return AgendaDTOAllOfAgendaMapProvider.fromJson(value);
|
||||||
|
case 'AgendaEventStatDTO':
|
||||||
|
return AgendaEventStatDTO.fromJson(value);
|
||||||
|
case 'AiCardDTO':
|
||||||
|
return AiCardDTO.fromJson(value);
|
||||||
|
case 'AiChatMessage':
|
||||||
|
return AiChatMessage.fromJson(value);
|
||||||
|
case 'AiChatRequest':
|
||||||
|
return AiChatRequest.fromJson(value);
|
||||||
|
case 'AiChatResponse':
|
||||||
|
return AiChatResponse.fromJson(value);
|
||||||
|
case 'AiChatResponseNavigation':
|
||||||
|
return AiChatResponseNavigation.fromJson(value);
|
||||||
case 'AppConfigurationLink':
|
case 'AppConfigurationLink':
|
||||||
return AppConfigurationLink.fromJson(value);
|
return AppConfigurationLink.fromJson(value);
|
||||||
case 'AppConfigurationLinkApplicationInstance':
|
case 'AppConfigurationLinkApplicationInstance':
|
||||||
@ -275,6 +287,8 @@ class ApiClient {
|
|||||||
return CoordinateSequence.fromJson(value);
|
return CoordinateSequence.fromJson(value);
|
||||||
case 'CoordinateSequenceFactory':
|
case 'CoordinateSequenceFactory':
|
||||||
return CoordinateSequenceFactory.fromJson(value);
|
return CoordinateSequenceFactory.fromJson(value);
|
||||||
|
case 'DayStatDTO':
|
||||||
|
return DayStatDTO.fromJson(value);
|
||||||
case 'Device':
|
case 'Device':
|
||||||
return Device.fromJson(value);
|
return Device.fromJson(value);
|
||||||
case 'DeviceDTO':
|
case 'DeviceDTO':
|
||||||
@ -301,6 +315,8 @@ class ApiClient {
|
|||||||
return GameDTO.fromJson(value);
|
return GameDTO.fromJson(value);
|
||||||
case 'GameDTOAllOfPuzzleImage':
|
case 'GameDTOAllOfPuzzleImage':
|
||||||
return GameDTOAllOfPuzzleImage.fromJson(value);
|
return GameDTOAllOfPuzzleImage.fromJson(value);
|
||||||
|
case 'GameStatDTO':
|
||||||
|
return GameStatDTO.fromJson(value);
|
||||||
case 'GameTypes':
|
case 'GameTypes':
|
||||||
return GameTypesTypeTransformer().decode(value);
|
return GameTypesTypeTransformer().decode(value);
|
||||||
case 'GeoPoint':
|
case 'GeoPoint':
|
||||||
@ -375,6 +391,8 @@ class ApiClient {
|
|||||||
return MapTypeMapBoxTypeTransformer().decode(value);
|
return MapTypeMapBoxTypeTransformer().decode(value);
|
||||||
case 'MenuDTO':
|
case 'MenuDTO':
|
||||||
return MenuDTO.fromJson(value);
|
return MenuDTO.fromJson(value);
|
||||||
|
case 'NavigationActionDTO':
|
||||||
|
return NavigationActionDTO.fromJson(value);
|
||||||
case 'NtsGeometryServices':
|
case 'NtsGeometryServices':
|
||||||
return NtsGeometryServices.fromJson(value);
|
return NtsGeometryServices.fromJson(value);
|
||||||
case 'NtsGeometryServicesCoordinateEqualityComparer':
|
case 'NtsGeometryServicesCoordinateEqualityComparer':
|
||||||
@ -391,6 +409,8 @@ class ApiClient {
|
|||||||
return PdfDTO.fromJson(value);
|
return PdfDTO.fromJson(value);
|
||||||
case 'PlayerMessageDTO':
|
case 'PlayerMessageDTO':
|
||||||
return PlayerMessageDTO.fromJson(value);
|
return PlayerMessageDTO.fromJson(value);
|
||||||
|
case 'PoiStatDTO':
|
||||||
|
return PoiStatDTO.fromJson(value);
|
||||||
case 'Point':
|
case 'Point':
|
||||||
return Point.fromJson(value);
|
return Point.fromJson(value);
|
||||||
case 'PointAllOfBoundary':
|
case 'PointAllOfBoundary':
|
||||||
@ -403,6 +423,8 @@ class ApiClient {
|
|||||||
return PrecisionModel.fromJson(value);
|
return PrecisionModel.fromJson(value);
|
||||||
case 'PrecisionModels':
|
case 'PrecisionModels':
|
||||||
return PrecisionModelsTypeTransformer().decode(value);
|
return PrecisionModelsTypeTransformer().decode(value);
|
||||||
|
case 'ProblemDetails':
|
||||||
|
return ProblemDetails.fromJson(value);
|
||||||
case 'ProgrammeBlock':
|
case 'ProgrammeBlock':
|
||||||
return ProgrammeBlock.fromJson(value);
|
return ProgrammeBlock.fromJson(value);
|
||||||
case 'ProgrammeBlockDTO':
|
case 'ProgrammeBlockDTO':
|
||||||
@ -421,6 +443,8 @@ class ApiClient {
|
|||||||
return QuizQuestionGuidedStep.fromJson(value);
|
return QuizQuestionGuidedStep.fromJson(value);
|
||||||
case 'QuizQuestionSectionQuiz':
|
case 'QuizQuestionSectionQuiz':
|
||||||
return QuizQuestionSectionQuiz.fromJson(value);
|
return QuizQuestionSectionQuiz.fromJson(value);
|
||||||
|
case 'QuizStatDTO':
|
||||||
|
return QuizStatDTO.fromJson(value);
|
||||||
case 'Resource':
|
case 'Resource':
|
||||||
return Resource.fromJson(value);
|
return Resource.fromJson(value);
|
||||||
case 'ResourceDTO':
|
case 'ResourceDTO':
|
||||||
@ -453,10 +477,14 @@ class ApiClient {
|
|||||||
return SectionMapAllOfMapTypeMapbox.fromJson(value);
|
return SectionMapAllOfMapTypeMapbox.fromJson(value);
|
||||||
case 'SectionQuiz':
|
case 'SectionQuiz':
|
||||||
return SectionQuiz.fromJson(value);
|
return SectionQuiz.fromJson(value);
|
||||||
|
case 'SectionStatDTO':
|
||||||
|
return SectionStatDTO.fromJson(value);
|
||||||
case 'SectionType':
|
case 'SectionType':
|
||||||
return SectionTypeTypeTransformer().decode(value);
|
return SectionTypeTypeTransformer().decode(value);
|
||||||
case 'SliderDTO':
|
case 'SliderDTO':
|
||||||
return SliderDTO.fromJson(value);
|
return SliderDTO.fromJson(value);
|
||||||
|
case 'StatsSummaryDTO':
|
||||||
|
return StatsSummaryDTO.fromJson(value);
|
||||||
case 'TokenDTO':
|
case 'TokenDTO':
|
||||||
return TokenDTO.fromJson(value);
|
return TokenDTO.fromJson(value);
|
||||||
case 'TranslationAndResourceDTO':
|
case 'TranslationAndResourceDTO':
|
||||||
@ -469,6 +497,8 @@ class ApiClient {
|
|||||||
return UserDetailDTO.fromJson(value);
|
return UserDetailDTO.fromJson(value);
|
||||||
case 'VideoDTO':
|
case 'VideoDTO':
|
||||||
return VideoDTO.fromJson(value);
|
return VideoDTO.fromJson(value);
|
||||||
|
case 'VisitEventDTO':
|
||||||
|
return VisitEventDTO.fromJson(value);
|
||||||
case 'WeatherDTO':
|
case 'WeatherDTO':
|
||||||
return WeatherDTO.fromJson(value);
|
return WeatherDTO.fromJson(value);
|
||||||
case 'WebDTO':
|
case 'WebDTO':
|
||||||
|
|||||||
146
manager_api_new/lib/model/ai_card_dto.dart
Normal file
146
manager_api_new/lib/model/ai_card_dto.dart
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
part of openapi.api;
|
||||||
|
|
||||||
|
class AiCardDTO {
|
||||||
|
/// Returns a new [AiCardDTO] instance.
|
||||||
|
AiCardDTO({
|
||||||
|
this.title,
|
||||||
|
this.subtitle,
|
||||||
|
this.icon,
|
||||||
|
});
|
||||||
|
|
||||||
|
String? title;
|
||||||
|
|
||||||
|
String? subtitle;
|
||||||
|
|
||||||
|
String? icon;
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool operator ==(Object other) =>
|
||||||
|
identical(this, other) ||
|
||||||
|
other is AiCardDTO &&
|
||||||
|
other.title == title &&
|
||||||
|
other.subtitle == subtitle &&
|
||||||
|
other.icon == icon;
|
||||||
|
|
||||||
|
@override
|
||||||
|
int get hashCode =>
|
||||||
|
// ignore: unnecessary_parenthesis
|
||||||
|
(title == null ? 0 : title!.hashCode) +
|
||||||
|
(subtitle == null ? 0 : subtitle!.hashCode) +
|
||||||
|
(icon == null ? 0 : icon!.hashCode);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() =>
|
||||||
|
'AiCardDTO[title=$title, subtitle=$subtitle, icon=$icon]';
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final json = <String, dynamic>{};
|
||||||
|
if (this.title != null) {
|
||||||
|
json[r'title'] = this.title;
|
||||||
|
} else {
|
||||||
|
json[r'title'] = null;
|
||||||
|
}
|
||||||
|
if (this.subtitle != null) {
|
||||||
|
json[r'subtitle'] = this.subtitle;
|
||||||
|
} else {
|
||||||
|
json[r'subtitle'] = null;
|
||||||
|
}
|
||||||
|
if (this.icon != null) {
|
||||||
|
json[r'icon'] = this.icon;
|
||||||
|
} else {
|
||||||
|
json[r'icon'] = null;
|
||||||
|
}
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns a new [AiCardDTO] instance and imports its values from
|
||||||
|
/// [value] if it's a [Map], null otherwise.
|
||||||
|
// ignore: prefer_constructors_over_static_methods
|
||||||
|
static AiCardDTO? fromJson(dynamic value) {
|
||||||
|
if (value is Map) {
|
||||||
|
final json = value.cast<String, dynamic>();
|
||||||
|
|
||||||
|
// Ensure that the map contains the required keys.
|
||||||
|
// Note 1: the values aren't checked for validity beyond being non-null.
|
||||||
|
// Note 2: this code is stripped in release mode!
|
||||||
|
assert(() {
|
||||||
|
requiredKeys.forEach((key) {
|
||||||
|
assert(json.containsKey(key),
|
||||||
|
'Required key "AiCardDTO[$key]" is missing from JSON.');
|
||||||
|
assert(json[key] != null,
|
||||||
|
'Required key "AiCardDTO[$key]" has a null value in JSON.');
|
||||||
|
});
|
||||||
|
return true;
|
||||||
|
}());
|
||||||
|
|
||||||
|
return AiCardDTO(
|
||||||
|
title: mapValueOfType<String>(json, r'title'),
|
||||||
|
subtitle: mapValueOfType<String>(json, r'subtitle'),
|
||||||
|
icon: mapValueOfType<String>(json, r'icon'),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static List<AiCardDTO> listFromJson(
|
||||||
|
dynamic json, {
|
||||||
|
bool growable = false,
|
||||||
|
}) {
|
||||||
|
final result = <AiCardDTO>[];
|
||||||
|
if (json is List && json.isNotEmpty) {
|
||||||
|
for (final row in json) {
|
||||||
|
final value = AiCardDTO.fromJson(row);
|
||||||
|
if (value != null) {
|
||||||
|
result.add(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result.toList(growable: growable);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Map<String, AiCardDTO> mapFromJson(dynamic json) {
|
||||||
|
final map = <String, AiCardDTO>{};
|
||||||
|
if (json is Map && json.isNotEmpty) {
|
||||||
|
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
|
||||||
|
for (final entry in json.entries) {
|
||||||
|
final value = AiCardDTO.fromJson(entry.value);
|
||||||
|
if (value != null) {
|
||||||
|
map[entry.key] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
// maps a json object with a list of AiCardDTO-objects as value to a dart map
|
||||||
|
static Map<String, List<AiCardDTO>> mapListFromJson(
|
||||||
|
dynamic json, {
|
||||||
|
bool growable = false,
|
||||||
|
}) {
|
||||||
|
final map = <String, List<AiCardDTO>>{};
|
||||||
|
if (json is Map && json.isNotEmpty) {
|
||||||
|
// ignore: parameter_assignments
|
||||||
|
json = json.cast<String, dynamic>();
|
||||||
|
for (final entry in json.entries) {
|
||||||
|
map[entry.key] = AiCardDTO.listFromJson(
|
||||||
|
entry.value,
|
||||||
|
growable: growable,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The list of required keys that must be present in a JSON.
|
||||||
|
static const requiredKeys = <String>{};
|
||||||
|
}
|
||||||
132
manager_api_new/lib/model/ai_chat_message.dart
Normal file
132
manager_api_new/lib/model/ai_chat_message.dart
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
part of openapi.api;
|
||||||
|
|
||||||
|
class AiChatMessage {
|
||||||
|
/// Returns a new [AiChatMessage] instance.
|
||||||
|
AiChatMessage({
|
||||||
|
this.role,
|
||||||
|
this.content,
|
||||||
|
});
|
||||||
|
|
||||||
|
String? role;
|
||||||
|
|
||||||
|
String? content;
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool operator ==(Object other) =>
|
||||||
|
identical(this, other) ||
|
||||||
|
other is AiChatMessage && other.role == role && other.content == content;
|
||||||
|
|
||||||
|
@override
|
||||||
|
int get hashCode =>
|
||||||
|
// ignore: unnecessary_parenthesis
|
||||||
|
(role == null ? 0 : role!.hashCode) +
|
||||||
|
(content == null ? 0 : content!.hashCode);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() => 'AiChatMessage[role=$role, content=$content]';
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final json = <String, dynamic>{};
|
||||||
|
if (this.role != null) {
|
||||||
|
json[r'role'] = this.role;
|
||||||
|
} else {
|
||||||
|
json[r'role'] = null;
|
||||||
|
}
|
||||||
|
if (this.content != null) {
|
||||||
|
json[r'content'] = this.content;
|
||||||
|
} else {
|
||||||
|
json[r'content'] = null;
|
||||||
|
}
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns a new [AiChatMessage] instance and imports its values from
|
||||||
|
/// [value] if it's a [Map], null otherwise.
|
||||||
|
// ignore: prefer_constructors_over_static_methods
|
||||||
|
static AiChatMessage? fromJson(dynamic value) {
|
||||||
|
if (value is Map) {
|
||||||
|
final json = value.cast<String, dynamic>();
|
||||||
|
|
||||||
|
// Ensure that the map contains the required keys.
|
||||||
|
// Note 1: the values aren't checked for validity beyond being non-null.
|
||||||
|
// Note 2: this code is stripped in release mode!
|
||||||
|
assert(() {
|
||||||
|
requiredKeys.forEach((key) {
|
||||||
|
assert(json.containsKey(key),
|
||||||
|
'Required key "AiChatMessage[$key]" is missing from JSON.');
|
||||||
|
assert(json[key] != null,
|
||||||
|
'Required key "AiChatMessage[$key]" has a null value in JSON.');
|
||||||
|
});
|
||||||
|
return true;
|
||||||
|
}());
|
||||||
|
|
||||||
|
return AiChatMessage(
|
||||||
|
role: mapValueOfType<String>(json, r'role'),
|
||||||
|
content: mapValueOfType<String>(json, r'content'),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static List<AiChatMessage> listFromJson(
|
||||||
|
dynamic json, {
|
||||||
|
bool growable = false,
|
||||||
|
}) {
|
||||||
|
final result = <AiChatMessage>[];
|
||||||
|
if (json is List && json.isNotEmpty) {
|
||||||
|
for (final row in json) {
|
||||||
|
final value = AiChatMessage.fromJson(row);
|
||||||
|
if (value != null) {
|
||||||
|
result.add(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result.toList(growable: growable);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Map<String, AiChatMessage> mapFromJson(dynamic json) {
|
||||||
|
final map = <String, AiChatMessage>{};
|
||||||
|
if (json is Map && json.isNotEmpty) {
|
||||||
|
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
|
||||||
|
for (final entry in json.entries) {
|
||||||
|
final value = AiChatMessage.fromJson(entry.value);
|
||||||
|
if (value != null) {
|
||||||
|
map[entry.key] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
// maps a json object with a list of AiChatMessage-objects as value to a dart map
|
||||||
|
static Map<String, List<AiChatMessage>> mapListFromJson(
|
||||||
|
dynamic json, {
|
||||||
|
bool growable = false,
|
||||||
|
}) {
|
||||||
|
final map = <String, List<AiChatMessage>>{};
|
||||||
|
if (json is Map && json.isNotEmpty) {
|
||||||
|
// ignore: parameter_assignments
|
||||||
|
json = json.cast<String, dynamic>();
|
||||||
|
for (final entry in json.entries) {
|
||||||
|
map[entry.key] = AiChatMessage.listFromJson(
|
||||||
|
entry.value,
|
||||||
|
growable: growable,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The list of required keys that must be present in a JSON.
|
||||||
|
static const requiredKeys = <String>{};
|
||||||
|
}
|
||||||
185
manager_api_new/lib/model/ai_chat_request.dart
Normal file
185
manager_api_new/lib/model/ai_chat_request.dart
Normal file
@ -0,0 +1,185 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
part of openapi.api;
|
||||||
|
|
||||||
|
class AiChatRequest {
|
||||||
|
/// Returns a new [AiChatRequest] instance.
|
||||||
|
AiChatRequest({
|
||||||
|
this.message,
|
||||||
|
this.instanceId,
|
||||||
|
this.appType,
|
||||||
|
this.configurationId,
|
||||||
|
this.language,
|
||||||
|
this.history = const [],
|
||||||
|
});
|
||||||
|
|
||||||
|
String? message;
|
||||||
|
|
||||||
|
String? instanceId;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Please note: This property should have been non-nullable! Since the specification file
|
||||||
|
/// does not include a default value (using the "default:" property), however, the generated
|
||||||
|
/// source code must fall back to having a nullable type.
|
||||||
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
||||||
|
///
|
||||||
|
AppType? appType;
|
||||||
|
|
||||||
|
String? configurationId;
|
||||||
|
|
||||||
|
String? language;
|
||||||
|
|
||||||
|
List<AiChatMessage>? history;
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool operator ==(Object other) =>
|
||||||
|
identical(this, other) ||
|
||||||
|
other is AiChatRequest &&
|
||||||
|
other.message == message &&
|
||||||
|
other.instanceId == instanceId &&
|
||||||
|
other.appType == appType &&
|
||||||
|
other.configurationId == configurationId &&
|
||||||
|
other.language == language &&
|
||||||
|
_deepEquality.equals(other.history, history);
|
||||||
|
|
||||||
|
@override
|
||||||
|
int get hashCode =>
|
||||||
|
// ignore: unnecessary_parenthesis
|
||||||
|
(message == null ? 0 : message!.hashCode) +
|
||||||
|
(instanceId == null ? 0 : instanceId!.hashCode) +
|
||||||
|
(appType == null ? 0 : appType!.hashCode) +
|
||||||
|
(configurationId == null ? 0 : configurationId!.hashCode) +
|
||||||
|
(language == null ? 0 : language!.hashCode) +
|
||||||
|
(history == null ? 0 : history!.hashCode);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() =>
|
||||||
|
'AiChatRequest[message=$message, instanceId=$instanceId, appType=$appType, configurationId=$configurationId, language=$language, history=$history]';
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final json = <String, dynamic>{};
|
||||||
|
if (this.message != null) {
|
||||||
|
json[r'message'] = this.message;
|
||||||
|
} else {
|
||||||
|
json[r'message'] = null;
|
||||||
|
}
|
||||||
|
if (this.instanceId != null) {
|
||||||
|
json[r'instanceId'] = this.instanceId;
|
||||||
|
} else {
|
||||||
|
json[r'instanceId'] = null;
|
||||||
|
}
|
||||||
|
if (this.appType != null) {
|
||||||
|
json[r'appType'] = this.appType;
|
||||||
|
} else {
|
||||||
|
json[r'appType'] = null;
|
||||||
|
}
|
||||||
|
if (this.configurationId != null) {
|
||||||
|
json[r'configurationId'] = this.configurationId;
|
||||||
|
} else {
|
||||||
|
json[r'configurationId'] = null;
|
||||||
|
}
|
||||||
|
if (this.language != null) {
|
||||||
|
json[r'language'] = this.language;
|
||||||
|
} else {
|
||||||
|
json[r'language'] = null;
|
||||||
|
}
|
||||||
|
if (this.history != null) {
|
||||||
|
json[r'history'] = this.history;
|
||||||
|
} else {
|
||||||
|
json[r'history'] = null;
|
||||||
|
}
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns a new [AiChatRequest] instance and imports its values from
|
||||||
|
/// [value] if it's a [Map], null otherwise.
|
||||||
|
// ignore: prefer_constructors_over_static_methods
|
||||||
|
static AiChatRequest? fromJson(dynamic value) {
|
||||||
|
if (value is Map) {
|
||||||
|
final json = value.cast<String, dynamic>();
|
||||||
|
|
||||||
|
// Ensure that the map contains the required keys.
|
||||||
|
// Note 1: the values aren't checked for validity beyond being non-null.
|
||||||
|
// Note 2: this code is stripped in release mode!
|
||||||
|
assert(() {
|
||||||
|
requiredKeys.forEach((key) {
|
||||||
|
assert(json.containsKey(key),
|
||||||
|
'Required key "AiChatRequest[$key]" is missing from JSON.');
|
||||||
|
assert(json[key] != null,
|
||||||
|
'Required key "AiChatRequest[$key]" has a null value in JSON.');
|
||||||
|
});
|
||||||
|
return true;
|
||||||
|
}());
|
||||||
|
|
||||||
|
return AiChatRequest(
|
||||||
|
message: mapValueOfType<String>(json, r'message'),
|
||||||
|
instanceId: mapValueOfType<String>(json, r'instanceId'),
|
||||||
|
appType: AppType.fromJson(json[r'appType']),
|
||||||
|
configurationId: mapValueOfType<String>(json, r'configurationId'),
|
||||||
|
language: mapValueOfType<String>(json, r'language'),
|
||||||
|
history: AiChatMessage.listFromJson(json[r'history']),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static List<AiChatRequest> listFromJson(
|
||||||
|
dynamic json, {
|
||||||
|
bool growable = false,
|
||||||
|
}) {
|
||||||
|
final result = <AiChatRequest>[];
|
||||||
|
if (json is List && json.isNotEmpty) {
|
||||||
|
for (final row in json) {
|
||||||
|
final value = AiChatRequest.fromJson(row);
|
||||||
|
if (value != null) {
|
||||||
|
result.add(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result.toList(growable: growable);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Map<String, AiChatRequest> mapFromJson(dynamic json) {
|
||||||
|
final map = <String, AiChatRequest>{};
|
||||||
|
if (json is Map && json.isNotEmpty) {
|
||||||
|
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
|
||||||
|
for (final entry in json.entries) {
|
||||||
|
final value = AiChatRequest.fromJson(entry.value);
|
||||||
|
if (value != null) {
|
||||||
|
map[entry.key] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
// maps a json object with a list of AiChatRequest-objects as value to a dart map
|
||||||
|
static Map<String, List<AiChatRequest>> mapListFromJson(
|
||||||
|
dynamic json, {
|
||||||
|
bool growable = false,
|
||||||
|
}) {
|
||||||
|
final map = <String, List<AiChatRequest>>{};
|
||||||
|
if (json is Map && json.isNotEmpty) {
|
||||||
|
// ignore: parameter_assignments
|
||||||
|
json = json.cast<String, dynamic>();
|
||||||
|
for (final entry in json.entries) {
|
||||||
|
map[entry.key] = AiChatRequest.listFromJson(
|
||||||
|
entry.value,
|
||||||
|
growable: growable,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The list of required keys that must be present in a JSON.
|
||||||
|
static const requiredKeys = <String>{};
|
||||||
|
}
|
||||||
146
manager_api_new/lib/model/ai_chat_response.dart
Normal file
146
manager_api_new/lib/model/ai_chat_response.dart
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
part of openapi.api;
|
||||||
|
|
||||||
|
class AiChatResponse {
|
||||||
|
/// Returns a new [AiChatResponse] instance.
|
||||||
|
AiChatResponse({
|
||||||
|
this.reply,
|
||||||
|
this.cards = const [],
|
||||||
|
this.navigation,
|
||||||
|
});
|
||||||
|
|
||||||
|
String? reply;
|
||||||
|
|
||||||
|
List<AiCardDTO>? cards;
|
||||||
|
|
||||||
|
AiChatResponseNavigation? navigation;
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool operator ==(Object other) =>
|
||||||
|
identical(this, other) ||
|
||||||
|
other is AiChatResponse &&
|
||||||
|
other.reply == reply &&
|
||||||
|
_deepEquality.equals(other.cards, cards) &&
|
||||||
|
other.navigation == navigation;
|
||||||
|
|
||||||
|
@override
|
||||||
|
int get hashCode =>
|
||||||
|
// ignore: unnecessary_parenthesis
|
||||||
|
(reply == null ? 0 : reply!.hashCode) +
|
||||||
|
(cards == null ? 0 : cards!.hashCode) +
|
||||||
|
(navigation == null ? 0 : navigation!.hashCode);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() =>
|
||||||
|
'AiChatResponse[reply=$reply, cards=$cards, navigation=$navigation]';
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final json = <String, dynamic>{};
|
||||||
|
if (this.reply != null) {
|
||||||
|
json[r'reply'] = this.reply;
|
||||||
|
} else {
|
||||||
|
json[r'reply'] = null;
|
||||||
|
}
|
||||||
|
if (this.cards != null) {
|
||||||
|
json[r'cards'] = this.cards;
|
||||||
|
} else {
|
||||||
|
json[r'cards'] = null;
|
||||||
|
}
|
||||||
|
if (this.navigation != null) {
|
||||||
|
json[r'navigation'] = this.navigation;
|
||||||
|
} else {
|
||||||
|
json[r'navigation'] = null;
|
||||||
|
}
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns a new [AiChatResponse] instance and imports its values from
|
||||||
|
/// [value] if it's a [Map], null otherwise.
|
||||||
|
// ignore: prefer_constructors_over_static_methods
|
||||||
|
static AiChatResponse? fromJson(dynamic value) {
|
||||||
|
if (value is Map) {
|
||||||
|
final json = value.cast<String, dynamic>();
|
||||||
|
|
||||||
|
// Ensure that the map contains the required keys.
|
||||||
|
// Note 1: the values aren't checked for validity beyond being non-null.
|
||||||
|
// Note 2: this code is stripped in release mode!
|
||||||
|
assert(() {
|
||||||
|
requiredKeys.forEach((key) {
|
||||||
|
assert(json.containsKey(key),
|
||||||
|
'Required key "AiChatResponse[$key]" is missing from JSON.');
|
||||||
|
assert(json[key] != null,
|
||||||
|
'Required key "AiChatResponse[$key]" has a null value in JSON.');
|
||||||
|
});
|
||||||
|
return true;
|
||||||
|
}());
|
||||||
|
|
||||||
|
return AiChatResponse(
|
||||||
|
reply: mapValueOfType<String>(json, r'reply'),
|
||||||
|
cards: AiCardDTO.listFromJson(json[r'cards']),
|
||||||
|
navigation: AiChatResponseNavigation.fromJson(json[r'navigation']),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static List<AiChatResponse> listFromJson(
|
||||||
|
dynamic json, {
|
||||||
|
bool growable = false,
|
||||||
|
}) {
|
||||||
|
final result = <AiChatResponse>[];
|
||||||
|
if (json is List && json.isNotEmpty) {
|
||||||
|
for (final row in json) {
|
||||||
|
final value = AiChatResponse.fromJson(row);
|
||||||
|
if (value != null) {
|
||||||
|
result.add(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result.toList(growable: growable);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Map<String, AiChatResponse> mapFromJson(dynamic json) {
|
||||||
|
final map = <String, AiChatResponse>{};
|
||||||
|
if (json is Map && json.isNotEmpty) {
|
||||||
|
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
|
||||||
|
for (final entry in json.entries) {
|
||||||
|
final value = AiChatResponse.fromJson(entry.value);
|
||||||
|
if (value != null) {
|
||||||
|
map[entry.key] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
// maps a json object with a list of AiChatResponse-objects as value to a dart map
|
||||||
|
static Map<String, List<AiChatResponse>> mapListFromJson(
|
||||||
|
dynamic json, {
|
||||||
|
bool growable = false,
|
||||||
|
}) {
|
||||||
|
final map = <String, List<AiChatResponse>>{};
|
||||||
|
if (json is Map && json.isNotEmpty) {
|
||||||
|
// ignore: parameter_assignments
|
||||||
|
json = json.cast<String, dynamic>();
|
||||||
|
for (final entry in json.entries) {
|
||||||
|
map[entry.key] = AiChatResponse.listFromJson(
|
||||||
|
entry.value,
|
||||||
|
growable: growable,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The list of required keys that must be present in a JSON.
|
||||||
|
static const requiredKeys = <String>{};
|
||||||
|
}
|
||||||
146
manager_api_new/lib/model/ai_chat_response_navigation.dart
Normal file
146
manager_api_new/lib/model/ai_chat_response_navigation.dart
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
part of openapi.api;
|
||||||
|
|
||||||
|
class AiChatResponseNavigation {
|
||||||
|
/// Returns a new [AiChatResponseNavigation] instance.
|
||||||
|
AiChatResponseNavigation({
|
||||||
|
this.sectionId,
|
||||||
|
this.sectionTitle,
|
||||||
|
this.sectionType,
|
||||||
|
});
|
||||||
|
|
||||||
|
String? sectionId;
|
||||||
|
|
||||||
|
String? sectionTitle;
|
||||||
|
|
||||||
|
String? sectionType;
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool operator ==(Object other) =>
|
||||||
|
identical(this, other) ||
|
||||||
|
other is AiChatResponseNavigation &&
|
||||||
|
other.sectionId == sectionId &&
|
||||||
|
other.sectionTitle == sectionTitle &&
|
||||||
|
other.sectionType == sectionType;
|
||||||
|
|
||||||
|
@override
|
||||||
|
int get hashCode =>
|
||||||
|
// ignore: unnecessary_parenthesis
|
||||||
|
(sectionId == null ? 0 : sectionId!.hashCode) +
|
||||||
|
(sectionTitle == null ? 0 : sectionTitle!.hashCode) +
|
||||||
|
(sectionType == null ? 0 : sectionType!.hashCode);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() =>
|
||||||
|
'AiChatResponseNavigation[sectionId=$sectionId, sectionTitle=$sectionTitle, sectionType=$sectionType]';
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final json = <String, dynamic>{};
|
||||||
|
if (this.sectionId != null) {
|
||||||
|
json[r'sectionId'] = this.sectionId;
|
||||||
|
} else {
|
||||||
|
json[r'sectionId'] = null;
|
||||||
|
}
|
||||||
|
if (this.sectionTitle != null) {
|
||||||
|
json[r'sectionTitle'] = this.sectionTitle;
|
||||||
|
} else {
|
||||||
|
json[r'sectionTitle'] = null;
|
||||||
|
}
|
||||||
|
if (this.sectionType != null) {
|
||||||
|
json[r'sectionType'] = this.sectionType;
|
||||||
|
} else {
|
||||||
|
json[r'sectionType'] = null;
|
||||||
|
}
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns a new [AiChatResponseNavigation] instance and imports its values from
|
||||||
|
/// [value] if it's a [Map], null otherwise.
|
||||||
|
// ignore: prefer_constructors_over_static_methods
|
||||||
|
static AiChatResponseNavigation? fromJson(dynamic value) {
|
||||||
|
if (value is Map) {
|
||||||
|
final json = value.cast<String, dynamic>();
|
||||||
|
|
||||||
|
// Ensure that the map contains the required keys.
|
||||||
|
// Note 1: the values aren't checked for validity beyond being non-null.
|
||||||
|
// Note 2: this code is stripped in release mode!
|
||||||
|
assert(() {
|
||||||
|
requiredKeys.forEach((key) {
|
||||||
|
assert(json.containsKey(key),
|
||||||
|
'Required key "AiChatResponseNavigation[$key]" is missing from JSON.');
|
||||||
|
assert(json[key] != null,
|
||||||
|
'Required key "AiChatResponseNavigation[$key]" has a null value in JSON.');
|
||||||
|
});
|
||||||
|
return true;
|
||||||
|
}());
|
||||||
|
|
||||||
|
return AiChatResponseNavigation(
|
||||||
|
sectionId: mapValueOfType<String>(json, r'sectionId'),
|
||||||
|
sectionTitle: mapValueOfType<String>(json, r'sectionTitle'),
|
||||||
|
sectionType: mapValueOfType<String>(json, r'sectionType'),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static List<AiChatResponseNavigation> listFromJson(
|
||||||
|
dynamic json, {
|
||||||
|
bool growable = false,
|
||||||
|
}) {
|
||||||
|
final result = <AiChatResponseNavigation>[];
|
||||||
|
if (json is List && json.isNotEmpty) {
|
||||||
|
for (final row in json) {
|
||||||
|
final value = AiChatResponseNavigation.fromJson(row);
|
||||||
|
if (value != null) {
|
||||||
|
result.add(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result.toList(growable: growable);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Map<String, AiChatResponseNavigation> mapFromJson(dynamic json) {
|
||||||
|
final map = <String, AiChatResponseNavigation>{};
|
||||||
|
if (json is Map && json.isNotEmpty) {
|
||||||
|
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
|
||||||
|
for (final entry in json.entries) {
|
||||||
|
final value = AiChatResponseNavigation.fromJson(entry.value);
|
||||||
|
if (value != null) {
|
||||||
|
map[entry.key] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
// maps a json object with a list of AiChatResponseNavigation-objects as value to a dart map
|
||||||
|
static Map<String, List<AiChatResponseNavigation>> mapListFromJson(
|
||||||
|
dynamic json, {
|
||||||
|
bool growable = false,
|
||||||
|
}) {
|
||||||
|
final map = <String, List<AiChatResponseNavigation>>{};
|
||||||
|
if (json is Map && json.isNotEmpty) {
|
||||||
|
// ignore: parameter_assignments
|
||||||
|
json = json.cast<String, dynamic>();
|
||||||
|
for (final entry in json.entries) {
|
||||||
|
map[entry.key] = AiChatResponseNavigation.listFromJson(
|
||||||
|
entry.value,
|
||||||
|
growable: growable,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The list of required keys that must be present in a JSON.
|
||||||
|
static const requiredKeys = <String>{};
|
||||||
|
}
|
||||||
22
manager_api_new/lib/model/app_type_extensions.dart
Normal file
22
manager_api_new/lib/model/app_type_extensions.dart
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
part of openapi.api;
|
||||||
|
|
||||||
|
/// Extension ajoutant le nom string à [AppType], synchronisé avec l'enum C# backend.
|
||||||
|
/// À mettre à jour si de nouvelles valeurs sont ajoutées au backend.
|
||||||
|
extension AppTypeName on AppType {
|
||||||
|
String get name {
|
||||||
|
switch (value) {
|
||||||
|
case 0:
|
||||||
|
return 'Mobile';
|
||||||
|
case 1:
|
||||||
|
return 'Tablet';
|
||||||
|
case 2:
|
||||||
|
return 'Web';
|
||||||
|
case 3:
|
||||||
|
return 'VR';
|
||||||
|
default:
|
||||||
|
return value.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -27,6 +27,7 @@ class ApplicationInstance {
|
|||||||
this.languages = const [],
|
this.languages = const [],
|
||||||
this.sectionEventId,
|
this.sectionEventId,
|
||||||
this.sectionEvent,
|
this.sectionEvent,
|
||||||
|
this.isAssistant,
|
||||||
});
|
});
|
||||||
|
|
||||||
String instanceId;
|
String instanceId;
|
||||||
@ -63,6 +64,14 @@ class ApplicationInstance {
|
|||||||
|
|
||||||
ApplicationInstanceSectionEvent? sectionEvent;
|
ApplicationInstanceSectionEvent? sectionEvent;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Please note: This property should have been non-nullable! Since the specification file
|
||||||
|
/// does not include a default value (using the "default:" property), however, the generated
|
||||||
|
/// source code must fall back to having a nullable type.
|
||||||
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
||||||
|
///
|
||||||
|
bool? isAssistant;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool operator ==(Object other) =>
|
bool operator ==(Object other) =>
|
||||||
identical(this, other) ||
|
identical(this, other) ||
|
||||||
@ -80,7 +89,8 @@ class ApplicationInstance {
|
|||||||
other.layoutMainPage == layoutMainPage &&
|
other.layoutMainPage == layoutMainPage &&
|
||||||
_deepEquality.equals(other.languages, languages) &&
|
_deepEquality.equals(other.languages, languages) &&
|
||||||
other.sectionEventId == sectionEventId &&
|
other.sectionEventId == sectionEventId &&
|
||||||
other.sectionEvent == sectionEvent;
|
other.sectionEvent == sectionEvent &&
|
||||||
|
other.isAssistant == isAssistant;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
int get hashCode =>
|
int get hashCode =>
|
||||||
@ -98,11 +108,12 @@ class ApplicationInstance {
|
|||||||
(layoutMainPage == null ? 0 : layoutMainPage!.hashCode) +
|
(layoutMainPage == null ? 0 : layoutMainPage!.hashCode) +
|
||||||
(languages == null ? 0 : languages!.hashCode) +
|
(languages == null ? 0 : languages!.hashCode) +
|
||||||
(sectionEventId == null ? 0 : sectionEventId!.hashCode) +
|
(sectionEventId == null ? 0 : sectionEventId!.hashCode) +
|
||||||
(sectionEvent == null ? 0 : sectionEvent!.hashCode);
|
(sectionEvent == null ? 0 : sectionEvent!.hashCode) +
|
||||||
|
(isAssistant == null ? 0 : isAssistant!.hashCode);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() =>
|
String toString() =>
|
||||||
'ApplicationInstance[instanceId=$instanceId, appType=$appType, id=$id, configurations=$configurations, mainImageId=$mainImageId, mainImageUrl=$mainImageUrl, loaderImageId=$loaderImageId, loaderImageUrl=$loaderImageUrl, primaryColor=$primaryColor, secondaryColor=$secondaryColor, layoutMainPage=$layoutMainPage, languages=$languages, sectionEventId=$sectionEventId, sectionEvent=$sectionEvent]';
|
'ApplicationInstance[instanceId=$instanceId, appType=$appType, id=$id, configurations=$configurations, mainImageId=$mainImageId, mainImageUrl=$mainImageUrl, loaderImageId=$loaderImageId, loaderImageUrl=$loaderImageUrl, primaryColor=$primaryColor, secondaryColor=$secondaryColor, layoutMainPage=$layoutMainPage, languages=$languages, sectionEventId=$sectionEventId, sectionEvent=$sectionEvent, isAssistant=$isAssistant]';
|
||||||
|
|
||||||
Map<String, dynamic> toJson() {
|
Map<String, dynamic> toJson() {
|
||||||
final json = <String, dynamic>{};
|
final json = <String, dynamic>{};
|
||||||
@ -168,6 +179,11 @@ class ApplicationInstance {
|
|||||||
} else {
|
} else {
|
||||||
json[r'sectionEvent'] = null;
|
json[r'sectionEvent'] = null;
|
||||||
}
|
}
|
||||||
|
if (this.isAssistant != null) {
|
||||||
|
json[r'isAssistant'] = this.isAssistant;
|
||||||
|
} else {
|
||||||
|
json[r'isAssistant'] = null;
|
||||||
|
}
|
||||||
return json;
|
return json;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -212,6 +228,7 @@ class ApplicationInstance {
|
|||||||
sectionEventId: mapValueOfType<String>(json, r'sectionEventId'),
|
sectionEventId: mapValueOfType<String>(json, r'sectionEventId'),
|
||||||
sectionEvent:
|
sectionEvent:
|
||||||
ApplicationInstanceSectionEvent.fromJson(json[r'sectionEvent']),
|
ApplicationInstanceSectionEvent.fromJson(json[r'sectionEvent']),
|
||||||
|
isAssistant: mapValueOfType<bool>(json, r'isAssistant'),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@ -27,6 +27,8 @@ class ApplicationInstanceDTO {
|
|||||||
this.languages = const [],
|
this.languages = const [],
|
||||||
this.sectionEventId,
|
this.sectionEventId,
|
||||||
this.sectionEventDTO,
|
this.sectionEventDTO,
|
||||||
|
this.isAssistant,
|
||||||
|
this.isStatistic,
|
||||||
});
|
});
|
||||||
|
|
||||||
String? id;
|
String? id;
|
||||||
@ -69,6 +71,10 @@ class ApplicationInstanceDTO {
|
|||||||
|
|
||||||
SectionEventDTO? sectionEventDTO;
|
SectionEventDTO? sectionEventDTO;
|
||||||
|
|
||||||
|
bool? isAssistant;
|
||||||
|
|
||||||
|
bool? isStatistic;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool operator ==(Object other) =>
|
bool operator ==(Object other) =>
|
||||||
identical(this, other) ||
|
identical(this, other) ||
|
||||||
@ -86,7 +92,9 @@ class ApplicationInstanceDTO {
|
|||||||
other.layoutMainPage == layoutMainPage &&
|
other.layoutMainPage == layoutMainPage &&
|
||||||
_deepEquality.equals(other.languages, languages) &&
|
_deepEquality.equals(other.languages, languages) &&
|
||||||
other.sectionEventId == sectionEventId &&
|
other.sectionEventId == sectionEventId &&
|
||||||
other.sectionEventDTO == sectionEventDTO;
|
other.sectionEventDTO == sectionEventDTO &&
|
||||||
|
other.isAssistant == isAssistant &&
|
||||||
|
other.isStatistic == isStatistic;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
int get hashCode =>
|
int get hashCode =>
|
||||||
@ -104,11 +112,13 @@ class ApplicationInstanceDTO {
|
|||||||
(layoutMainPage == null ? 0 : layoutMainPage!.hashCode) +
|
(layoutMainPage == null ? 0 : layoutMainPage!.hashCode) +
|
||||||
(languages == null ? 0 : languages!.hashCode) +
|
(languages == null ? 0 : languages!.hashCode) +
|
||||||
(sectionEventId == null ? 0 : sectionEventId!.hashCode) +
|
(sectionEventId == null ? 0 : sectionEventId!.hashCode) +
|
||||||
(sectionEventDTO == null ? 0 : sectionEventDTO!.hashCode);
|
(sectionEventDTO == null ? 0 : sectionEventDTO!.hashCode) +
|
||||||
|
(isAssistant == null ? 0 : isAssistant!.hashCode) +
|
||||||
|
(isStatistic == null ? 0 : isStatistic!.hashCode);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() =>
|
String toString() =>
|
||||||
'ApplicationInstanceDTO[id=$id, instanceId=$instanceId, appType=$appType, configurations=$configurations, mainImageId=$mainImageId, mainImageUrl=$mainImageUrl, loaderImageId=$loaderImageId, loaderImageUrl=$loaderImageUrl, primaryColor=$primaryColor, secondaryColor=$secondaryColor, layoutMainPage=$layoutMainPage, languages=$languages, sectionEventId=$sectionEventId, sectionEventDTO=$sectionEventDTO]';
|
'ApplicationInstanceDTO[id=$id, instanceId=$instanceId, appType=$appType, configurations=$configurations, mainImageId=$mainImageId, mainImageUrl=$mainImageUrl, loaderImageId=$loaderImageId, loaderImageUrl=$loaderImageUrl, primaryColor=$primaryColor, secondaryColor=$secondaryColor, layoutMainPage=$layoutMainPage, languages=$languages, sectionEventId=$sectionEventId, sectionEventDTO=$sectionEventDTO, isAssistant=$isAssistant, isStatistic=$isStatistic]';
|
||||||
|
|
||||||
Map<String, dynamic> toJson() {
|
Map<String, dynamic> toJson() {
|
||||||
final json = <String, dynamic>{};
|
final json = <String, dynamic>{};
|
||||||
@ -182,6 +192,16 @@ class ApplicationInstanceDTO {
|
|||||||
} else {
|
} else {
|
||||||
json[r'sectionEventDTO'] = null;
|
json[r'sectionEventDTO'] = null;
|
||||||
}
|
}
|
||||||
|
if (this.isAssistant != null) {
|
||||||
|
json[r'isAssistant'] = this.isAssistant;
|
||||||
|
} else {
|
||||||
|
json[r'isAssistant'] = null;
|
||||||
|
}
|
||||||
|
if (this.isStatistic != null) {
|
||||||
|
json[r'isStatistic'] = this.isStatistic;
|
||||||
|
} else {
|
||||||
|
json[r'isStatistic'] = null;
|
||||||
|
}
|
||||||
return json;
|
return json;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -224,8 +244,9 @@ class ApplicationInstanceDTO {
|
|||||||
.toList(growable: false)
|
.toList(growable: false)
|
||||||
: const [],
|
: const [],
|
||||||
sectionEventId: mapValueOfType<String>(json, r'sectionEventId'),
|
sectionEventId: mapValueOfType<String>(json, r'sectionEventId'),
|
||||||
sectionEventDTO: SectionEventDTO.fromJson(
|
sectionEventDTO: SectionEventDTO.fromJson(json[r'sectionEventDTO']),
|
||||||
json[r'sectionEventDTO']),
|
isAssistant: mapValueOfType<bool>(json, r'isAssistant'),
|
||||||
|
isStatistic: mapValueOfType<bool>(json, r'isStatistic'),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@ -65,12 +65,6 @@ class GuidedPathDTO {
|
|||||||
///
|
///
|
||||||
bool? hideNextStepsUntilComplete;
|
bool? hideNextStepsUntilComplete;
|
||||||
|
|
||||||
///
|
|
||||||
/// Please note: This property should have been non-nullable! Since the specification file
|
|
||||||
/// does not include a default value (using the "default:" property), however, the generated
|
|
||||||
/// source code must fall back to having a nullable type.
|
|
||||||
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
||||||
///
|
|
||||||
int? order;
|
int? order;
|
||||||
|
|
||||||
List<GuidedStepDTO>? steps;
|
List<GuidedStepDTO>? steps;
|
||||||
@ -129,12 +123,12 @@ class GuidedPathDTO {
|
|||||||
json[r'instanceId'] = null;
|
json[r'instanceId'] = null;
|
||||||
}
|
}
|
||||||
if (this.title != null) {
|
if (this.title != null) {
|
||||||
json[r'title'] = this.title!.map((v) => v.toJson()).toList();
|
json[r'title'] = this.title;
|
||||||
} else {
|
} else {
|
||||||
json[r'title'] = null;
|
json[r'title'] = null;
|
||||||
}
|
}
|
||||||
if (this.description != null) {
|
if (this.description != null) {
|
||||||
json[r'description'] = this.description!.map((v) => v.toJson()).toList();
|
json[r'description'] = this.description;
|
||||||
} else {
|
} else {
|
||||||
json[r'description'] = null;
|
json[r'description'] = null;
|
||||||
}
|
}
|
||||||
@ -174,7 +168,7 @@ class GuidedPathDTO {
|
|||||||
json[r'order'] = null;
|
json[r'order'] = null;
|
||||||
}
|
}
|
||||||
if (this.steps != null) {
|
if (this.steps != null) {
|
||||||
json[r'steps'] = this.steps!.map((v) => v.toJson()).toList();
|
json[r'steps'] = this.steps;
|
||||||
} else {
|
} else {
|
||||||
json[r'steps'] = null;
|
json[r'steps'] = null;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -23,6 +23,7 @@ class Instance {
|
|||||||
this.isTablet,
|
this.isTablet,
|
||||||
this.isWeb,
|
this.isWeb,
|
||||||
this.isVR,
|
this.isVR,
|
||||||
|
this.isAssistant,
|
||||||
});
|
});
|
||||||
|
|
||||||
String id;
|
String id;
|
||||||
@ -87,6 +88,14 @@ class Instance {
|
|||||||
///
|
///
|
||||||
bool? isVR;
|
bool? isVR;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Please note: This property should have been non-nullable! Since the specification file
|
||||||
|
/// does not include a default value (using the "default:" property), however, the generated
|
||||||
|
/// source code must fall back to having a nullable type.
|
||||||
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
||||||
|
///
|
||||||
|
bool? isAssistant;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool operator ==(Object other) =>
|
bool operator ==(Object other) =>
|
||||||
identical(this, other) ||
|
identical(this, other) ||
|
||||||
@ -100,7 +109,8 @@ class Instance {
|
|||||||
other.isMobile == isMobile &&
|
other.isMobile == isMobile &&
|
||||||
other.isTablet == isTablet &&
|
other.isTablet == isTablet &&
|
||||||
other.isWeb == isWeb &&
|
other.isWeb == isWeb &&
|
||||||
other.isVR == isVR;
|
other.isVR == isVR &&
|
||||||
|
other.isAssistant == isAssistant;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
int get hashCode =>
|
int get hashCode =>
|
||||||
@ -114,11 +124,12 @@ class Instance {
|
|||||||
(isMobile == null ? 0 : isMobile!.hashCode) +
|
(isMobile == null ? 0 : isMobile!.hashCode) +
|
||||||
(isTablet == null ? 0 : isTablet!.hashCode) +
|
(isTablet == null ? 0 : isTablet!.hashCode) +
|
||||||
(isWeb == null ? 0 : isWeb!.hashCode) +
|
(isWeb == null ? 0 : isWeb!.hashCode) +
|
||||||
(isVR == null ? 0 : isVR!.hashCode);
|
(isVR == null ? 0 : isVR!.hashCode) +
|
||||||
|
(isAssistant == null ? 0 : isAssistant!.hashCode);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() =>
|
String toString() =>
|
||||||
'Instance[id=$id, name=$name, dateCreation=$dateCreation, pinCode=$pinCode, isPushNotification=$isPushNotification, isStatistic=$isStatistic, isMobile=$isMobile, isTablet=$isTablet, isWeb=$isWeb, isVR=$isVR]';
|
'Instance[id=$id, name=$name, dateCreation=$dateCreation, pinCode=$pinCode, isPushNotification=$isPushNotification, isStatistic=$isStatistic, isMobile=$isMobile, isTablet=$isTablet, isWeb=$isWeb, isVR=$isVR, isAssistant=$isAssistant]';
|
||||||
|
|
||||||
Map<String, dynamic> toJson() {
|
Map<String, dynamic> toJson() {
|
||||||
final json = <String, dynamic>{};
|
final json = <String, dynamic>{};
|
||||||
@ -164,6 +175,11 @@ class Instance {
|
|||||||
} else {
|
} else {
|
||||||
json[r'isVR'] = null;
|
json[r'isVR'] = null;
|
||||||
}
|
}
|
||||||
|
if (this.isAssistant != null) {
|
||||||
|
json[r'isAssistant'] = this.isAssistant;
|
||||||
|
} else {
|
||||||
|
json[r'isAssistant'] = null;
|
||||||
|
}
|
||||||
return json;
|
return json;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -198,6 +214,7 @@ class Instance {
|
|||||||
isTablet: mapValueOfType<bool>(json, r'isTablet'),
|
isTablet: mapValueOfType<bool>(json, r'isTablet'),
|
||||||
isWeb: mapValueOfType<bool>(json, r'isWeb'),
|
isWeb: mapValueOfType<bool>(json, r'isWeb'),
|
||||||
isVR: mapValueOfType<bool>(json, r'isVR'),
|
isVR: mapValueOfType<bool>(json, r'isVR'),
|
||||||
|
isAssistant: mapValueOfType<bool>(json, r'isAssistant'),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@ -23,6 +23,7 @@ class InstanceDTO {
|
|||||||
this.isTablet,
|
this.isTablet,
|
||||||
this.isWeb,
|
this.isWeb,
|
||||||
this.isVR,
|
this.isVR,
|
||||||
|
this.isAssistant,
|
||||||
this.applicationInstanceDTOs = const [],
|
this.applicationInstanceDTOs = const [],
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -82,6 +83,8 @@ class InstanceDTO {
|
|||||||
///
|
///
|
||||||
bool? isVR;
|
bool? isVR;
|
||||||
|
|
||||||
|
bool? isAssistant;
|
||||||
|
|
||||||
List<ApplicationInstanceDTO>? applicationInstanceDTOs;
|
List<ApplicationInstanceDTO>? applicationInstanceDTOs;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -98,6 +101,7 @@ class InstanceDTO {
|
|||||||
other.isTablet == isTablet &&
|
other.isTablet == isTablet &&
|
||||||
other.isWeb == isWeb &&
|
other.isWeb == isWeb &&
|
||||||
other.isVR == isVR &&
|
other.isVR == isVR &&
|
||||||
|
other.isAssistant == isAssistant &&
|
||||||
_deepEquality.equals(
|
_deepEquality.equals(
|
||||||
other.applicationInstanceDTOs, applicationInstanceDTOs);
|
other.applicationInstanceDTOs, applicationInstanceDTOs);
|
||||||
|
|
||||||
@ -114,11 +118,12 @@ class InstanceDTO {
|
|||||||
(isTablet == null ? 0 : isTablet!.hashCode) +
|
(isTablet == null ? 0 : isTablet!.hashCode) +
|
||||||
(isWeb == null ? 0 : isWeb!.hashCode) +
|
(isWeb == null ? 0 : isWeb!.hashCode) +
|
||||||
(isVR == null ? 0 : isVR!.hashCode) +
|
(isVR == null ? 0 : isVR!.hashCode) +
|
||||||
|
(isAssistant == null ? 0 : isAssistant!.hashCode) +
|
||||||
(applicationInstanceDTOs == null ? 0 : applicationInstanceDTOs!.hashCode);
|
(applicationInstanceDTOs == null ? 0 : applicationInstanceDTOs!.hashCode);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() =>
|
String toString() =>
|
||||||
'InstanceDTO[id=$id, name=$name, dateCreation=$dateCreation, pinCode=$pinCode, isPushNotification=$isPushNotification, isStatistic=$isStatistic, isMobile=$isMobile, isTablet=$isTablet, isWeb=$isWeb, isVR=$isVR, applicationInstanceDTOs=$applicationInstanceDTOs]';
|
'InstanceDTO[id=$id, name=$name, dateCreation=$dateCreation, pinCode=$pinCode, isPushNotification=$isPushNotification, isStatistic=$isStatistic, isMobile=$isMobile, isTablet=$isTablet, isWeb=$isWeb, isVR=$isVR, isAssistant=$isAssistant, applicationInstanceDTOs=$applicationInstanceDTOs]';
|
||||||
|
|
||||||
Map<String, dynamic> toJson() {
|
Map<String, dynamic> toJson() {
|
||||||
final json = <String, dynamic>{};
|
final json = <String, dynamic>{};
|
||||||
@ -172,6 +177,11 @@ class InstanceDTO {
|
|||||||
} else {
|
} else {
|
||||||
json[r'isVR'] = null;
|
json[r'isVR'] = null;
|
||||||
}
|
}
|
||||||
|
if (this.isAssistant != null) {
|
||||||
|
json[r'isAssistant'] = this.isAssistant;
|
||||||
|
} else {
|
||||||
|
json[r'isAssistant'] = null;
|
||||||
|
}
|
||||||
if (this.applicationInstanceDTOs != null) {
|
if (this.applicationInstanceDTOs != null) {
|
||||||
json[r'applicationInstanceDTOs'] = this.applicationInstanceDTOs;
|
json[r'applicationInstanceDTOs'] = this.applicationInstanceDTOs;
|
||||||
} else {
|
} else {
|
||||||
@ -211,6 +221,7 @@ class InstanceDTO {
|
|||||||
isTablet: mapValueOfType<bool>(json, r'isTablet'),
|
isTablet: mapValueOfType<bool>(json, r'isTablet'),
|
||||||
isWeb: mapValueOfType<bool>(json, r'isWeb'),
|
isWeb: mapValueOfType<bool>(json, r'isWeb'),
|
||||||
isVR: mapValueOfType<bool>(json, r'isVR'),
|
isVR: mapValueOfType<bool>(json, r'isVR'),
|
||||||
|
isAssistant: mapValueOfType<bool>(json, r'isAssistant'),
|
||||||
applicationInstanceDTOs: ApplicationInstanceDTO.listFromJson(
|
applicationInstanceDTOs: ApplicationInstanceDTO.listFromJson(
|
||||||
json[r'applicationInstanceDTOs']),
|
json[r'applicationInstanceDTOs']),
|
||||||
);
|
);
|
||||||
|
|||||||
146
manager_api_new/lib/model/navigation_action_dto.dart
Normal file
146
manager_api_new/lib/model/navigation_action_dto.dart
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
part of openapi.api;
|
||||||
|
|
||||||
|
class NavigationActionDTO {
|
||||||
|
/// Returns a new [NavigationActionDTO] instance.
|
||||||
|
NavigationActionDTO({
|
||||||
|
this.sectionId,
|
||||||
|
this.sectionTitle,
|
||||||
|
this.sectionType,
|
||||||
|
});
|
||||||
|
|
||||||
|
String? sectionId;
|
||||||
|
|
||||||
|
String? sectionTitle;
|
||||||
|
|
||||||
|
String? sectionType;
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool operator ==(Object other) =>
|
||||||
|
identical(this, other) ||
|
||||||
|
other is NavigationActionDTO &&
|
||||||
|
other.sectionId == sectionId &&
|
||||||
|
other.sectionTitle == sectionTitle &&
|
||||||
|
other.sectionType == sectionType;
|
||||||
|
|
||||||
|
@override
|
||||||
|
int get hashCode =>
|
||||||
|
// ignore: unnecessary_parenthesis
|
||||||
|
(sectionId == null ? 0 : sectionId!.hashCode) +
|
||||||
|
(sectionTitle == null ? 0 : sectionTitle!.hashCode) +
|
||||||
|
(sectionType == null ? 0 : sectionType!.hashCode);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() =>
|
||||||
|
'NavigationActionDTO[sectionId=$sectionId, sectionTitle=$sectionTitle, sectionType=$sectionType]';
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final json = <String, dynamic>{};
|
||||||
|
if (this.sectionId != null) {
|
||||||
|
json[r'sectionId'] = this.sectionId;
|
||||||
|
} else {
|
||||||
|
json[r'sectionId'] = null;
|
||||||
|
}
|
||||||
|
if (this.sectionTitle != null) {
|
||||||
|
json[r'sectionTitle'] = this.sectionTitle;
|
||||||
|
} else {
|
||||||
|
json[r'sectionTitle'] = null;
|
||||||
|
}
|
||||||
|
if (this.sectionType != null) {
|
||||||
|
json[r'sectionType'] = this.sectionType;
|
||||||
|
} else {
|
||||||
|
json[r'sectionType'] = null;
|
||||||
|
}
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns a new [NavigationActionDTO] instance and imports its values from
|
||||||
|
/// [value] if it's a [Map], null otherwise.
|
||||||
|
// ignore: prefer_constructors_over_static_methods
|
||||||
|
static NavigationActionDTO? fromJson(dynamic value) {
|
||||||
|
if (value is Map) {
|
||||||
|
final json = value.cast<String, dynamic>();
|
||||||
|
|
||||||
|
// Ensure that the map contains the required keys.
|
||||||
|
// Note 1: the values aren't checked for validity beyond being non-null.
|
||||||
|
// Note 2: this code is stripped in release mode!
|
||||||
|
assert(() {
|
||||||
|
requiredKeys.forEach((key) {
|
||||||
|
assert(json.containsKey(key),
|
||||||
|
'Required key "NavigationActionDTO[$key]" is missing from JSON.');
|
||||||
|
assert(json[key] != null,
|
||||||
|
'Required key "NavigationActionDTO[$key]" has a null value in JSON.');
|
||||||
|
});
|
||||||
|
return true;
|
||||||
|
}());
|
||||||
|
|
||||||
|
return NavigationActionDTO(
|
||||||
|
sectionId: mapValueOfType<String>(json, r'sectionId'),
|
||||||
|
sectionTitle: mapValueOfType<String>(json, r'sectionTitle'),
|
||||||
|
sectionType: mapValueOfType<String>(json, r'sectionType'),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static List<NavigationActionDTO> listFromJson(
|
||||||
|
dynamic json, {
|
||||||
|
bool growable = false,
|
||||||
|
}) {
|
||||||
|
final result = <NavigationActionDTO>[];
|
||||||
|
if (json is List && json.isNotEmpty) {
|
||||||
|
for (final row in json) {
|
||||||
|
final value = NavigationActionDTO.fromJson(row);
|
||||||
|
if (value != null) {
|
||||||
|
result.add(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result.toList(growable: growable);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Map<String, NavigationActionDTO> mapFromJson(dynamic json) {
|
||||||
|
final map = <String, NavigationActionDTO>{};
|
||||||
|
if (json is Map && json.isNotEmpty) {
|
||||||
|
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
|
||||||
|
for (final entry in json.entries) {
|
||||||
|
final value = NavigationActionDTO.fromJson(entry.value);
|
||||||
|
if (value != null) {
|
||||||
|
map[entry.key] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
// maps a json object with a list of NavigationActionDTO-objects as value to a dart map
|
||||||
|
static Map<String, List<NavigationActionDTO>> mapListFromJson(
|
||||||
|
dynamic json, {
|
||||||
|
bool growable = false,
|
||||||
|
}) {
|
||||||
|
final map = <String, List<NavigationActionDTO>>{};
|
||||||
|
if (json is Map && json.isNotEmpty) {
|
||||||
|
// ignore: parameter_assignments
|
||||||
|
json = json.cast<String, dynamic>();
|
||||||
|
for (final entry in json.entries) {
|
||||||
|
map[entry.key] = NavigationActionDTO.listFromJson(
|
||||||
|
entry.value,
|
||||||
|
growable: growable,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The list of required keys that must be present in a JSON.
|
||||||
|
static const requiredKeys = <String>{};
|
||||||
|
}
|
||||||
176
manager_api_new/lib/model/problem_details.dart
Normal file
176
manager_api_new/lib/model/problem_details.dart
Normal file
@ -0,0 +1,176 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
part of openapi.api;
|
||||||
|
|
||||||
|
class ProblemDetails {
|
||||||
|
/// Returns a new [ProblemDetails] instance.
|
||||||
|
ProblemDetails({
|
||||||
|
this.type,
|
||||||
|
this.title,
|
||||||
|
this.status,
|
||||||
|
this.detail,
|
||||||
|
this.instance,
|
||||||
|
this.extensions = const {},
|
||||||
|
});
|
||||||
|
|
||||||
|
String? type;
|
||||||
|
|
||||||
|
String? title;
|
||||||
|
|
||||||
|
int? status;
|
||||||
|
|
||||||
|
String? detail;
|
||||||
|
|
||||||
|
String? instance;
|
||||||
|
|
||||||
|
Map<String, Object> extensions;
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool operator ==(Object other) =>
|
||||||
|
identical(this, other) ||
|
||||||
|
other is ProblemDetails &&
|
||||||
|
other.type == type &&
|
||||||
|
other.title == title &&
|
||||||
|
other.status == status &&
|
||||||
|
other.detail == detail &&
|
||||||
|
other.instance == instance &&
|
||||||
|
_deepEquality.equals(other.extensions, extensions);
|
||||||
|
|
||||||
|
@override
|
||||||
|
int get hashCode =>
|
||||||
|
// ignore: unnecessary_parenthesis
|
||||||
|
(type == null ? 0 : type!.hashCode) +
|
||||||
|
(title == null ? 0 : title!.hashCode) +
|
||||||
|
(status == null ? 0 : status!.hashCode) +
|
||||||
|
(detail == null ? 0 : detail!.hashCode) +
|
||||||
|
(instance == null ? 0 : instance!.hashCode) +
|
||||||
|
(extensions.hashCode);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() =>
|
||||||
|
'ProblemDetails[type=$type, title=$title, status=$status, detail=$detail, instance=$instance, extensions=$extensions]';
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final json = <String, dynamic>{};
|
||||||
|
if (this.type != null) {
|
||||||
|
json[r'type'] = this.type;
|
||||||
|
} else {
|
||||||
|
json[r'type'] = null;
|
||||||
|
}
|
||||||
|
if (this.title != null) {
|
||||||
|
json[r'title'] = this.title;
|
||||||
|
} else {
|
||||||
|
json[r'title'] = null;
|
||||||
|
}
|
||||||
|
if (this.status != null) {
|
||||||
|
json[r'status'] = this.status;
|
||||||
|
} else {
|
||||||
|
json[r'status'] = null;
|
||||||
|
}
|
||||||
|
if (this.detail != null) {
|
||||||
|
json[r'detail'] = this.detail;
|
||||||
|
} else {
|
||||||
|
json[r'detail'] = null;
|
||||||
|
}
|
||||||
|
if (this.instance != null) {
|
||||||
|
json[r'instance'] = this.instance;
|
||||||
|
} else {
|
||||||
|
json[r'instance'] = null;
|
||||||
|
}
|
||||||
|
json[r'extensions'] = this.extensions;
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns a new [ProblemDetails] instance and imports its values from
|
||||||
|
/// [value] if it's a [Map], null otherwise.
|
||||||
|
// ignore: prefer_constructors_over_static_methods
|
||||||
|
static ProblemDetails? fromJson(dynamic value) {
|
||||||
|
if (value is Map) {
|
||||||
|
final json = value.cast<String, dynamic>();
|
||||||
|
|
||||||
|
// Ensure that the map contains the required keys.
|
||||||
|
// Note 1: the values aren't checked for validity beyond being non-null.
|
||||||
|
// Note 2: this code is stripped in release mode!
|
||||||
|
assert(() {
|
||||||
|
requiredKeys.forEach((key) {
|
||||||
|
assert(json.containsKey(key),
|
||||||
|
'Required key "ProblemDetails[$key]" is missing from JSON.');
|
||||||
|
assert(json[key] != null,
|
||||||
|
'Required key "ProblemDetails[$key]" has a null value in JSON.');
|
||||||
|
});
|
||||||
|
return true;
|
||||||
|
}());
|
||||||
|
|
||||||
|
return ProblemDetails(
|
||||||
|
type: mapValueOfType<String>(json, r'type'),
|
||||||
|
title: mapValueOfType<String>(json, r'title'),
|
||||||
|
status: mapValueOfType<int>(json, r'status'),
|
||||||
|
detail: mapValueOfType<String>(json, r'detail'),
|
||||||
|
instance: mapValueOfType<String>(json, r'instance'),
|
||||||
|
extensions:
|
||||||
|
mapCastOfType<String, Object>(json, r'extensions') ?? const {},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static List<ProblemDetails> listFromJson(
|
||||||
|
dynamic json, {
|
||||||
|
bool growable = false,
|
||||||
|
}) {
|
||||||
|
final result = <ProblemDetails>[];
|
||||||
|
if (json is List && json.isNotEmpty) {
|
||||||
|
for (final row in json) {
|
||||||
|
final value = ProblemDetails.fromJson(row);
|
||||||
|
if (value != null) {
|
||||||
|
result.add(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result.toList(growable: growable);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Map<String, ProblemDetails> mapFromJson(dynamic json) {
|
||||||
|
final map = <String, ProblemDetails>{};
|
||||||
|
if (json is Map && json.isNotEmpty) {
|
||||||
|
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
|
||||||
|
for (final entry in json.entries) {
|
||||||
|
final value = ProblemDetails.fromJson(entry.value);
|
||||||
|
if (value != null) {
|
||||||
|
map[entry.key] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
// maps a json object with a list of ProblemDetails-objects as value to a dart map
|
||||||
|
static Map<String, List<ProblemDetails>> mapListFromJson(
|
||||||
|
dynamic json, {
|
||||||
|
bool growable = false,
|
||||||
|
}) {
|
||||||
|
final map = <String, List<ProblemDetails>>{};
|
||||||
|
if (json is Map && json.isNotEmpty) {
|
||||||
|
// ignore: parameter_assignments
|
||||||
|
json = json.cast<String, dynamic>();
|
||||||
|
for (final entry in json.entries) {
|
||||||
|
map[entry.key] = ProblemDetails.listFromJson(
|
||||||
|
entry.value,
|
||||||
|
growable: growable,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The list of required keys that must be present in a JSON.
|
||||||
|
static const requiredKeys = <String>{};
|
||||||
|
}
|
||||||
269
manager_api_new/lib/model/stats_summary_dto.dart
Normal file
269
manager_api_new/lib/model/stats_summary_dto.dart
Normal file
@ -0,0 +1,269 @@
|
|||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
part of openapi.api;
|
||||||
|
|
||||||
|
class StatsSummaryDTO {
|
||||||
|
StatsSummaryDTO({
|
||||||
|
this.totalSessions = 0,
|
||||||
|
this.avgVisitDurationSeconds = 0,
|
||||||
|
this.topSections = const [],
|
||||||
|
this.visitsByDay = const [],
|
||||||
|
this.languageDistribution = const {},
|
||||||
|
this.appTypeDistribution = const {},
|
||||||
|
this.topPois = const [],
|
||||||
|
this.topAgendaEvents = const [],
|
||||||
|
this.quizStats = const [],
|
||||||
|
this.gameStats = const [],
|
||||||
|
});
|
||||||
|
|
||||||
|
int totalSessions;
|
||||||
|
int avgVisitDurationSeconds;
|
||||||
|
List<SectionStatDTO> topSections;
|
||||||
|
List<DayStatDTO> visitsByDay;
|
||||||
|
Map<String, int> languageDistribution;
|
||||||
|
Map<String, int> appTypeDistribution;
|
||||||
|
List<PoiStatDTO> topPois;
|
||||||
|
List<AgendaEventStatDTO> topAgendaEvents;
|
||||||
|
List<QuizStatDTO> quizStats;
|
||||||
|
List<GameStatDTO> gameStats;
|
||||||
|
|
||||||
|
static StatsSummaryDTO? fromJson(dynamic value) {
|
||||||
|
if (value is Map) {
|
||||||
|
final json = value.cast<String, dynamic>();
|
||||||
|
return StatsSummaryDTO(
|
||||||
|
totalSessions: mapValueOfType<int>(json, r'totalSessions') ?? 0,
|
||||||
|
avgVisitDurationSeconds: mapValueOfType<int>(json, r'avgVisitDurationSeconds') ?? 0,
|
||||||
|
topSections: SectionStatDTO.listFromJson(json[r'topSections']),
|
||||||
|
visitsByDay: DayStatDTO.listFromJson(json[r'visitsByDay']),
|
||||||
|
languageDistribution: (json[r'languageDistribution'] is Map)
|
||||||
|
? (json[r'languageDistribution'] as Map).cast<String, int>()
|
||||||
|
: {},
|
||||||
|
appTypeDistribution: (json[r'appTypeDistribution'] is Map)
|
||||||
|
? (json[r'appTypeDistribution'] as Map).cast<String, int>()
|
||||||
|
: {},
|
||||||
|
topPois: PoiStatDTO.listFromJson(json[r'topPois']),
|
||||||
|
topAgendaEvents: AgendaEventStatDTO.listFromJson(json[r'topAgendaEvents']),
|
||||||
|
quizStats: QuizStatDTO.listFromJson(json[r'quizStats']),
|
||||||
|
gameStats: GameStatDTO.listFromJson(json[r'gameStats']),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class SectionStatDTO {
|
||||||
|
SectionStatDTO({
|
||||||
|
this.sectionId,
|
||||||
|
this.sectionTitle,
|
||||||
|
this.views = 0,
|
||||||
|
this.avgDurationSeconds = 0,
|
||||||
|
});
|
||||||
|
|
||||||
|
String? sectionId;
|
||||||
|
String? sectionTitle;
|
||||||
|
int views;
|
||||||
|
int avgDurationSeconds;
|
||||||
|
|
||||||
|
static SectionStatDTO? fromJson(dynamic value) {
|
||||||
|
if (value is Map) {
|
||||||
|
final json = value.cast<String, dynamic>();
|
||||||
|
return SectionStatDTO(
|
||||||
|
sectionId: mapValueOfType<String>(json, r'sectionId'),
|
||||||
|
sectionTitle: mapValueOfType<String>(json, r'sectionTitle'),
|
||||||
|
views: mapValueOfType<int>(json, r'views') ?? 0,
|
||||||
|
avgDurationSeconds: mapValueOfType<int>(json, r'avgDurationSeconds') ?? 0,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static List<SectionStatDTO> listFromJson(dynamic json) {
|
||||||
|
final result = <SectionStatDTO>[];
|
||||||
|
if (json is List) {
|
||||||
|
for (final row in json) {
|
||||||
|
final value = SectionStatDTO.fromJson(row);
|
||||||
|
if (value != null) result.add(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DayStatDTO {
|
||||||
|
DayStatDTO({
|
||||||
|
this.date,
|
||||||
|
this.total = 0,
|
||||||
|
this.mobile = 0,
|
||||||
|
this.tablet = 0,
|
||||||
|
});
|
||||||
|
|
||||||
|
String? date;
|
||||||
|
int total;
|
||||||
|
int mobile;
|
||||||
|
int tablet;
|
||||||
|
|
||||||
|
static DayStatDTO? fromJson(dynamic value) {
|
||||||
|
if (value is Map) {
|
||||||
|
final json = value.cast<String, dynamic>();
|
||||||
|
return DayStatDTO(
|
||||||
|
date: mapValueOfType<String>(json, r'date'),
|
||||||
|
total: mapValueOfType<int>(json, r'total') ?? 0,
|
||||||
|
mobile: mapValueOfType<int>(json, r'mobile') ?? 0,
|
||||||
|
tablet: mapValueOfType<int>(json, r'tablet') ?? 0,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static List<DayStatDTO> listFromJson(dynamic json) {
|
||||||
|
final result = <DayStatDTO>[];
|
||||||
|
if (json is List) {
|
||||||
|
for (final row in json) {
|
||||||
|
final value = DayStatDTO.fromJson(row);
|
||||||
|
if (value != null) result.add(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class PoiStatDTO {
|
||||||
|
PoiStatDTO({this.geoPointId, this.title, this.taps = 0, this.sectionId});
|
||||||
|
|
||||||
|
int? geoPointId;
|
||||||
|
String? title;
|
||||||
|
int taps;
|
||||||
|
String? sectionId;
|
||||||
|
|
||||||
|
static PoiStatDTO? fromJson(dynamic value) {
|
||||||
|
if (value is Map) {
|
||||||
|
final json = value.cast<String, dynamic>();
|
||||||
|
return PoiStatDTO(
|
||||||
|
geoPointId: mapValueOfType<int>(json, r'geoPointId'),
|
||||||
|
title: mapValueOfType<String>(json, r'title'),
|
||||||
|
taps: mapValueOfType<int>(json, r'taps') ?? 0,
|
||||||
|
sectionId: mapValueOfType<String>(json, r'sectionId'),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static List<PoiStatDTO> listFromJson(dynamic json) {
|
||||||
|
final result = <PoiStatDTO>[];
|
||||||
|
if (json is List) {
|
||||||
|
for (final row in json) {
|
||||||
|
final value = PoiStatDTO.fromJson(row);
|
||||||
|
if (value != null) result.add(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class AgendaEventStatDTO {
|
||||||
|
AgendaEventStatDTO({this.eventId, this.eventTitle, this.taps = 0});
|
||||||
|
|
||||||
|
String? eventId;
|
||||||
|
String? eventTitle;
|
||||||
|
int taps;
|
||||||
|
|
||||||
|
static AgendaEventStatDTO? fromJson(dynamic value) {
|
||||||
|
if (value is Map) {
|
||||||
|
final json = value.cast<String, dynamic>();
|
||||||
|
return AgendaEventStatDTO(
|
||||||
|
eventId: mapValueOfType<String>(json, r'eventId'),
|
||||||
|
eventTitle: mapValueOfType<String>(json, r'eventTitle'),
|
||||||
|
taps: mapValueOfType<int>(json, r'taps') ?? 0,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static List<AgendaEventStatDTO> listFromJson(dynamic json) {
|
||||||
|
final result = <AgendaEventStatDTO>[];
|
||||||
|
if (json is List) {
|
||||||
|
for (final row in json) {
|
||||||
|
final value = AgendaEventStatDTO.fromJson(row);
|
||||||
|
if (value != null) result.add(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class QuizStatDTO {
|
||||||
|
QuizStatDTO({
|
||||||
|
this.sectionId,
|
||||||
|
this.sectionTitle,
|
||||||
|
this.completions = 0,
|
||||||
|
this.avgScore = 0,
|
||||||
|
this.totalQuestions = 0,
|
||||||
|
});
|
||||||
|
|
||||||
|
String? sectionId;
|
||||||
|
String? sectionTitle;
|
||||||
|
int completions;
|
||||||
|
double avgScore;
|
||||||
|
int totalQuestions;
|
||||||
|
|
||||||
|
static QuizStatDTO? fromJson(dynamic value) {
|
||||||
|
if (value is Map) {
|
||||||
|
final json = value.cast<String, dynamic>();
|
||||||
|
return QuizStatDTO(
|
||||||
|
sectionId: mapValueOfType<String>(json, r'sectionId'),
|
||||||
|
sectionTitle: mapValueOfType<String>(json, r'sectionTitle'),
|
||||||
|
completions: mapValueOfType<int>(json, r'completions') ?? 0,
|
||||||
|
avgScore: mapValueOfType<double>(json, r'avgScore') ?? 0,
|
||||||
|
totalQuestions: mapValueOfType<int>(json, r'totalQuestions') ?? 0,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static List<QuizStatDTO> listFromJson(dynamic json) {
|
||||||
|
final result = <QuizStatDTO>[];
|
||||||
|
if (json is List) {
|
||||||
|
for (final row in json) {
|
||||||
|
final value = QuizStatDTO.fromJson(row);
|
||||||
|
if (value != null) result.add(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class GameStatDTO {
|
||||||
|
GameStatDTO({this.gameType, this.completions = 0, this.avgDurationSeconds = 0});
|
||||||
|
|
||||||
|
String? gameType;
|
||||||
|
int completions;
|
||||||
|
int avgDurationSeconds;
|
||||||
|
|
||||||
|
static GameStatDTO? fromJson(dynamic value) {
|
||||||
|
if (value is Map) {
|
||||||
|
final json = value.cast<String, dynamic>();
|
||||||
|
return GameStatDTO(
|
||||||
|
gameType: mapValueOfType<String>(json, r'gameType'),
|
||||||
|
completions: mapValueOfType<int>(json, r'completions') ?? 0,
|
||||||
|
avgDurationSeconds: mapValueOfType<int>(json, r'avgDurationSeconds') ?? 0,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static List<GameStatDTO> listFromJson(dynamic json) {
|
||||||
|
final result = <GameStatDTO>[];
|
||||||
|
if (json is List) {
|
||||||
|
for (final row in json) {
|
||||||
|
final value = GameStatDTO.fromJson(row);
|
||||||
|
if (value != null) result.add(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
238
manager_api_new/lib/model/visit_event_dto.dart
Normal file
238
manager_api_new/lib/model/visit_event_dto.dart
Normal file
@ -0,0 +1,238 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
part of openapi.api;
|
||||||
|
|
||||||
|
class VisitEventDTO {
|
||||||
|
/// Returns a new [VisitEventDTO] instance.
|
||||||
|
VisitEventDTO({
|
||||||
|
this.instanceId,
|
||||||
|
this.configurationId,
|
||||||
|
this.sectionId,
|
||||||
|
this.sessionId,
|
||||||
|
this.eventType,
|
||||||
|
this.appType,
|
||||||
|
this.language,
|
||||||
|
this.durationSeconds,
|
||||||
|
this.metadata,
|
||||||
|
this.timestamp,
|
||||||
|
});
|
||||||
|
|
||||||
|
String? instanceId;
|
||||||
|
|
||||||
|
String? configurationId;
|
||||||
|
|
||||||
|
String? sectionId;
|
||||||
|
|
||||||
|
String? sessionId;
|
||||||
|
|
||||||
|
String? eventType;
|
||||||
|
|
||||||
|
String? appType;
|
||||||
|
|
||||||
|
String? language;
|
||||||
|
|
||||||
|
int? durationSeconds;
|
||||||
|
|
||||||
|
String? metadata;
|
||||||
|
|
||||||
|
DateTime? timestamp;
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool operator ==(Object other) =>
|
||||||
|
identical(this, other) ||
|
||||||
|
other is VisitEventDTO &&
|
||||||
|
other.instanceId == instanceId &&
|
||||||
|
other.configurationId == configurationId &&
|
||||||
|
other.sectionId == sectionId &&
|
||||||
|
other.sessionId == sessionId &&
|
||||||
|
other.eventType == eventType &&
|
||||||
|
other.appType == appType &&
|
||||||
|
other.language == language &&
|
||||||
|
other.durationSeconds == durationSeconds &&
|
||||||
|
other.metadata == metadata &&
|
||||||
|
other.timestamp == timestamp;
|
||||||
|
|
||||||
|
@override
|
||||||
|
int get hashCode =>
|
||||||
|
// ignore: unnecessary_parenthesis
|
||||||
|
(instanceId == null ? 0 : instanceId!.hashCode) +
|
||||||
|
(configurationId == null ? 0 : configurationId!.hashCode) +
|
||||||
|
(sectionId == null ? 0 : sectionId!.hashCode) +
|
||||||
|
(sessionId == null ? 0 : sessionId!.hashCode) +
|
||||||
|
(eventType == null ? 0 : eventType!.hashCode) +
|
||||||
|
(appType == null ? 0 : appType!.hashCode) +
|
||||||
|
(language == null ? 0 : language!.hashCode) +
|
||||||
|
(durationSeconds == null ? 0 : durationSeconds!.hashCode) +
|
||||||
|
(metadata == null ? 0 : metadata!.hashCode) +
|
||||||
|
(timestamp == null ? 0 : timestamp!.hashCode);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() =>
|
||||||
|
'VisitEventDTO[instanceId=$instanceId, configurationId=$configurationId, sectionId=$sectionId, sessionId=$sessionId, eventType=$eventType, appType=$appType, language=$language, durationSeconds=$durationSeconds, metadata=$metadata, timestamp=$timestamp]';
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final json = <String, dynamic>{};
|
||||||
|
if (this.instanceId != null) {
|
||||||
|
json[r'instanceId'] = this.instanceId;
|
||||||
|
} else {
|
||||||
|
json[r'instanceId'] = null;
|
||||||
|
}
|
||||||
|
if (this.configurationId != null) {
|
||||||
|
json[r'configurationId'] = this.configurationId;
|
||||||
|
} else {
|
||||||
|
json[r'configurationId'] = null;
|
||||||
|
}
|
||||||
|
if (this.sectionId != null) {
|
||||||
|
json[r'sectionId'] = this.sectionId;
|
||||||
|
} else {
|
||||||
|
json[r'sectionId'] = null;
|
||||||
|
}
|
||||||
|
if (this.sessionId != null) {
|
||||||
|
json[r'sessionId'] = this.sessionId;
|
||||||
|
} else {
|
||||||
|
json[r'sessionId'] = null;
|
||||||
|
}
|
||||||
|
if (this.eventType != null) {
|
||||||
|
json[r'eventType'] = this.eventType;
|
||||||
|
} else {
|
||||||
|
json[r'eventType'] = null;
|
||||||
|
}
|
||||||
|
if (this.appType != null) {
|
||||||
|
json[r'appType'] = this.appType;
|
||||||
|
} else {
|
||||||
|
json[r'appType'] = null;
|
||||||
|
}
|
||||||
|
if (this.language != null) {
|
||||||
|
json[r'language'] = this.language;
|
||||||
|
} else {
|
||||||
|
json[r'language'] = null;
|
||||||
|
}
|
||||||
|
if (this.durationSeconds != null) {
|
||||||
|
json[r'durationSeconds'] = this.durationSeconds;
|
||||||
|
} else {
|
||||||
|
json[r'durationSeconds'] = null;
|
||||||
|
}
|
||||||
|
if (this.metadata != null) {
|
||||||
|
json[r'metadata'] = this.metadata;
|
||||||
|
} else {
|
||||||
|
json[r'metadata'] = null;
|
||||||
|
}
|
||||||
|
if (this.timestamp != null) {
|
||||||
|
json[r'timestamp'] = this.timestamp!.toUtc().toIso8601String();
|
||||||
|
} else {
|
||||||
|
json[r'timestamp'] = null;
|
||||||
|
}
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns a new [VisitEventDTO] instance and imports its values from
|
||||||
|
/// [value] if it's a [Map], null otherwise.
|
||||||
|
// ignore: prefer_constructors_over_static_methods
|
||||||
|
static VisitEventDTO? fromJson(dynamic value) {
|
||||||
|
if (value is Map) {
|
||||||
|
final json = value.cast<String, dynamic>();
|
||||||
|
|
||||||
|
// Ensure that the map contains the required keys.
|
||||||
|
// Note 1: the values aren't checked for validity beyond being non-null.
|
||||||
|
// Note 2: this code is stripped in release mode!
|
||||||
|
assert(() {
|
||||||
|
requiredKeys.forEach((key) {
|
||||||
|
assert(json.containsKey(key),
|
||||||
|
'Required key "VisitEventDTO[$key]" is missing from JSON.');
|
||||||
|
assert(json[key] != null,
|
||||||
|
'Required key "VisitEventDTO[$key]" has a null value in JSON.');
|
||||||
|
});
|
||||||
|
return true;
|
||||||
|
}());
|
||||||
|
|
||||||
|
return VisitEventDTO(
|
||||||
|
instanceId: mapValueOfType<String>(json, r'instanceId'),
|
||||||
|
configurationId: mapValueOfType<String>(json, r'configurationId'),
|
||||||
|
sectionId: mapValueOfType<String>(json, r'sectionId'),
|
||||||
|
sessionId: mapValueOfType<String>(json, r'sessionId'),
|
||||||
|
eventType: mapValueOfType<String>(json, r'eventType'),
|
||||||
|
appType: mapValueOfType<String>(json, r'appType'),
|
||||||
|
language: mapValueOfType<String>(json, r'language'),
|
||||||
|
durationSeconds: mapValueOfType<int>(json, r'durationSeconds'),
|
||||||
|
metadata: mapValueOfType<String>(json, r'metadata'),
|
||||||
|
timestamp: mapDateTime(json, r'timestamp', r''),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static List<VisitEventDTO> listFromJson(
|
||||||
|
dynamic json, {
|
||||||
|
bool growable = false,
|
||||||
|
}) {
|
||||||
|
final result = <VisitEventDTO>[];
|
||||||
|
if (json is List && json.isNotEmpty) {
|
||||||
|
for (final row in json) {
|
||||||
|
final value = VisitEventDTO.fromJson(row);
|
||||||
|
if (value != null) {
|
||||||
|
result.add(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result.toList(growable: growable);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Map<String, VisitEventDTO> mapFromJson(dynamic json) {
|
||||||
|
final map = <String, VisitEventDTO>{};
|
||||||
|
if (json is Map && json.isNotEmpty) {
|
||||||
|
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
|
||||||
|
for (final entry in json.entries) {
|
||||||
|
final value = VisitEventDTO.fromJson(entry.value);
|
||||||
|
if (value != null) {
|
||||||
|
map[entry.key] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
// maps a json object with a list of VisitEventDTO-objects as value to a dart map
|
||||||
|
static Map<String, List<VisitEventDTO>> mapListFromJson(
|
||||||
|
dynamic json, {
|
||||||
|
bool growable = false,
|
||||||
|
}) {
|
||||||
|
final map = <String, List<VisitEventDTO>>{};
|
||||||
|
if (json is Map && json.isNotEmpty) {
|
||||||
|
// ignore: parameter_assignments
|
||||||
|
json = json.cast<String, dynamic>();
|
||||||
|
for (final entry in json.entries) {
|
||||||
|
map[entry.key] = VisitEventDTO.listFromJson(
|
||||||
|
entry.value,
|
||||||
|
growable: growable,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The list of required keys that must be present in a JSON.
|
||||||
|
static const requiredKeys = <String>{};
|
||||||
|
}
|
||||||
|
|
||||||
|
class VisitEventType {
|
||||||
|
static const sectionView = 'SectionView';
|
||||||
|
static const sectionLeave = 'SectionLeave';
|
||||||
|
static const mapPoiTap = 'MapPoiTap';
|
||||||
|
static const qrScan = 'QrScan';
|
||||||
|
static const quizComplete = 'QuizComplete';
|
||||||
|
static const gameComplete = 'GameComplete';
|
||||||
|
static const agendaEventTap = 'AgendaEventTap';
|
||||||
|
static const menuItemTap = 'MenuItemTap';
|
||||||
|
static const assistantMessage = 'AssistantMessage';
|
||||||
|
|
||||||
|
/// The list of required keys that must be present in a JSON.
|
||||||
|
static const requiredKeys = <String>{};
|
||||||
|
}
|
||||||
34
manager_api_new/test/agenda_event_stat_dto_test.dart
Normal file
34
manager_api_new/test/agenda_event_stat_dto_test.dart
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
|
// tests for AgendaEventStatDTO
|
||||||
|
void main() {
|
||||||
|
// final instance = AgendaEventStatDTO();
|
||||||
|
|
||||||
|
group('test AgendaEventStatDTO', () {
|
||||||
|
// String eventId
|
||||||
|
test('to test the property `eventId`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String eventTitle
|
||||||
|
test('to test the property `eventTitle`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// int taps
|
||||||
|
test('to test the property `taps`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
24
manager_api_new/test/ai_api_test.dart
Normal file
24
manager_api_new/test/ai_api_test.dart
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
|
/// tests for AIApi
|
||||||
|
void main() {
|
||||||
|
// final instance = AIApi();
|
||||||
|
|
||||||
|
group('tests for AIApi', () {
|
||||||
|
//Future<AiChatResponse> aiChat(AiChatRequest aiChatRequest) async
|
||||||
|
test('test aiChat', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
34
manager_api_new/test/ai_card_dto_test.dart
Normal file
34
manager_api_new/test/ai_card_dto_test.dart
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
|
// tests for AiCardDTO
|
||||||
|
void main() {
|
||||||
|
// final instance = AiCardDTO();
|
||||||
|
|
||||||
|
group('test AiCardDTO', () {
|
||||||
|
// String title
|
||||||
|
test('to test the property `title`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String subtitle
|
||||||
|
test('to test the property `subtitle`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String icon
|
||||||
|
test('to test the property `icon`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
29
manager_api_new/test/ai_chat_message_test.dart
Normal file
29
manager_api_new/test/ai_chat_message_test.dart
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
|
// tests for AiChatMessage
|
||||||
|
void main() {
|
||||||
|
// final instance = AiChatMessage();
|
||||||
|
|
||||||
|
group('test AiChatMessage', () {
|
||||||
|
// String role
|
||||||
|
test('to test the property `role`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String content
|
||||||
|
test('to test the property `content`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
49
manager_api_new/test/ai_chat_request_test.dart
Normal file
49
manager_api_new/test/ai_chat_request_test.dart
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
|
// tests for AiChatRequest
|
||||||
|
void main() {
|
||||||
|
// final instance = AiChatRequest();
|
||||||
|
|
||||||
|
group('test AiChatRequest', () {
|
||||||
|
// String message
|
||||||
|
test('to test the property `message`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String instanceId
|
||||||
|
test('to test the property `instanceId`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// AppType appType
|
||||||
|
test('to test the property `appType`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String configurationId
|
||||||
|
test('to test the property `configurationId`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String language
|
||||||
|
test('to test the property `language`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// List<AiChatMessage> history (default value: const [])
|
||||||
|
test('to test the property `history`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
34
manager_api_new/test/ai_chat_response_navigation_test.dart
Normal file
34
manager_api_new/test/ai_chat_response_navigation_test.dart
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
|
// tests for AiChatResponseNavigation
|
||||||
|
void main() {
|
||||||
|
// final instance = AiChatResponseNavigation();
|
||||||
|
|
||||||
|
group('test AiChatResponseNavigation', () {
|
||||||
|
// String sectionId
|
||||||
|
test('to test the property `sectionId`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String sectionTitle
|
||||||
|
test('to test the property `sectionTitle`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String sectionType
|
||||||
|
test('to test the property `sectionType`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
34
manager_api_new/test/ai_chat_response_test.dart
Normal file
34
manager_api_new/test/ai_chat_response_test.dart
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
|
// tests for AiChatResponse
|
||||||
|
void main() {
|
||||||
|
// final instance = AiChatResponse();
|
||||||
|
|
||||||
|
group('test AiChatResponse', () {
|
||||||
|
// String reply
|
||||||
|
test('to test the property `reply`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// List<AiCardDTO> cards (default value: const [])
|
||||||
|
test('to test the property `cards`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// AiChatResponseNavigation navigation
|
||||||
|
test('to test the property `navigation`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
39
manager_api_new/test/day_stat_dto_test.dart
Normal file
39
manager_api_new/test/day_stat_dto_test.dart
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
|
// tests for DayStatDTO
|
||||||
|
void main() {
|
||||||
|
// final instance = DayStatDTO();
|
||||||
|
|
||||||
|
group('test DayStatDTO', () {
|
||||||
|
// String date
|
||||||
|
test('to test the property `date`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// int total
|
||||||
|
test('to test the property `total`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// int mobile
|
||||||
|
test('to test the property `mobile`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// int tablet
|
||||||
|
test('to test the property `tablet`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
34
manager_api_new/test/game_stat_dto_test.dart
Normal file
34
manager_api_new/test/game_stat_dto_test.dart
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
|
// tests for GameStatDTO
|
||||||
|
void main() {
|
||||||
|
// final instance = GameStatDTO();
|
||||||
|
|
||||||
|
group('test GameStatDTO', () {
|
||||||
|
// String gameType
|
||||||
|
test('to test the property `gameType`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// int completions
|
||||||
|
test('to test the property `completions`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// int avgDurationSeconds
|
||||||
|
test('to test the property `avgDurationSeconds`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
34
manager_api_new/test/navigation_action_dto_test.dart
Normal file
34
manager_api_new/test/navigation_action_dto_test.dart
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
|
// tests for NavigationActionDTO
|
||||||
|
void main() {
|
||||||
|
// final instance = NavigationActionDTO();
|
||||||
|
|
||||||
|
group('test NavigationActionDTO', () {
|
||||||
|
// String sectionId
|
||||||
|
test('to test the property `sectionId`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String sectionTitle
|
||||||
|
test('to test the property `sectionTitle`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String sectionType
|
||||||
|
test('to test the property `sectionType`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
39
manager_api_new/test/poi_stat_dto_test.dart
Normal file
39
manager_api_new/test/poi_stat_dto_test.dart
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
|
// tests for PoiStatDTO
|
||||||
|
void main() {
|
||||||
|
// final instance = PoiStatDTO();
|
||||||
|
|
||||||
|
group('test PoiStatDTO', () {
|
||||||
|
// int geoPointId
|
||||||
|
test('to test the property `geoPointId`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String title
|
||||||
|
test('to test the property `title`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// int taps
|
||||||
|
test('to test the property `taps`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String sectionId
|
||||||
|
test('to test the property `sectionId`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
49
manager_api_new/test/problem_details_test.dart
Normal file
49
manager_api_new/test/problem_details_test.dart
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
|
// tests for ProblemDetails
|
||||||
|
void main() {
|
||||||
|
// final instance = ProblemDetails();
|
||||||
|
|
||||||
|
group('test ProblemDetails', () {
|
||||||
|
// String type
|
||||||
|
test('to test the property `type`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String title
|
||||||
|
test('to test the property `title`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// int status
|
||||||
|
test('to test the property `status`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String detail
|
||||||
|
test('to test the property `detail`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String instance
|
||||||
|
test('to test the property `instance`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// Map<String, Object> extensions (default value: const {})
|
||||||
|
test('to test the property `extensions`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
44
manager_api_new/test/quiz_stat_dto_test.dart
Normal file
44
manager_api_new/test/quiz_stat_dto_test.dart
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
|
// tests for QuizStatDTO
|
||||||
|
void main() {
|
||||||
|
// final instance = QuizStatDTO();
|
||||||
|
|
||||||
|
group('test QuizStatDTO', () {
|
||||||
|
// String sectionId
|
||||||
|
test('to test the property `sectionId`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String sectionTitle
|
||||||
|
test('to test the property `sectionTitle`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// double avgScore
|
||||||
|
test('to test the property `avgScore`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// int totalQuestions
|
||||||
|
test('to test the property `totalQuestions`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// int completions
|
||||||
|
test('to test the property `completions`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
39
manager_api_new/test/section_stat_dto_test.dart
Normal file
39
manager_api_new/test/section_stat_dto_test.dart
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
|
// tests for SectionStatDTO
|
||||||
|
void main() {
|
||||||
|
// final instance = SectionStatDTO();
|
||||||
|
|
||||||
|
group('test SectionStatDTO', () {
|
||||||
|
// String sectionId
|
||||||
|
test('to test the property `sectionId`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String sectionTitle
|
||||||
|
test('to test the property `sectionTitle`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// int views
|
||||||
|
test('to test the property `views`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// int avgDurationSeconds
|
||||||
|
test('to test the property `avgDurationSeconds`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
29
manager_api_new/test/stats_api_test.dart
Normal file
29
manager_api_new/test/stats_api_test.dart
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
|
/// tests for StatsApi
|
||||||
|
void main() {
|
||||||
|
// final instance = StatsApi();
|
||||||
|
|
||||||
|
group('tests for StatsApi', () {
|
||||||
|
//Future<StatsSummaryDTO> statsGetSummary({ String instanceId, DateTime from, DateTime to, String appType }) async
|
||||||
|
test('test statsGetSummary', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
//Future statsTrackEvent(VisitEventDTO visitEventDTO) async
|
||||||
|
test('test statsTrackEvent', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
69
manager_api_new/test/stats_summary_dto_test.dart
Normal file
69
manager_api_new/test/stats_summary_dto_test.dart
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
|
// tests for StatsSummaryDTO
|
||||||
|
void main() {
|
||||||
|
// final instance = StatsSummaryDTO();
|
||||||
|
|
||||||
|
group('test StatsSummaryDTO', () {
|
||||||
|
// int totalSessions
|
||||||
|
test('to test the property `totalSessions`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// int avgVisitDurationSeconds
|
||||||
|
test('to test the property `avgVisitDurationSeconds`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// List<SectionStatDTO> topSections (default value: const [])
|
||||||
|
test('to test the property `topSections`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// List<DayStatDTO> visitsByDay (default value: const [])
|
||||||
|
test('to test the property `visitsByDay`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// Map<String, int> languageDistribution (default value: const {})
|
||||||
|
test('to test the property `languageDistribution`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// Map<String, int> appTypeDistribution (default value: const {})
|
||||||
|
test('to test the property `appTypeDistribution`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// List<PoiStatDTO> topPois (default value: const [])
|
||||||
|
test('to test the property `topPois`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// List<AgendaEventStatDTO> topAgendaEvents (default value: const [])
|
||||||
|
test('to test the property `topAgendaEvents`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// List<QuizStatDTO> quizStats (default value: const [])
|
||||||
|
test('to test the property `quizStats`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// List<GameStatDTO> gameStats (default value: const [])
|
||||||
|
test('to test the property `gameStats`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
69
manager_api_new/test/visit_event_dto_test.dart
Normal file
69
manager_api_new/test/visit_event_dto_test.dart
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
import 'package:manager_api_new/api.dart';
|
||||||
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
|
// tests for VisitEventDTO
|
||||||
|
void main() {
|
||||||
|
// final instance = VisitEventDTO();
|
||||||
|
|
||||||
|
group('test VisitEventDTO', () {
|
||||||
|
// String instanceId
|
||||||
|
test('to test the property `instanceId`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String configurationId
|
||||||
|
test('to test the property `configurationId`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String sectionId
|
||||||
|
test('to test the property `sectionId`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String sessionId
|
||||||
|
test('to test the property `sessionId`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String eventType
|
||||||
|
test('to test the property `eventType`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String appType
|
||||||
|
test('to test the property `appType`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String language
|
||||||
|
test('to test the property `language`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// int durationSeconds
|
||||||
|
test('to test the property `durationSeconds`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// String metadata
|
||||||
|
test('to test the property `metadata`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
|
||||||
|
// DateTime timestamp
|
||||||
|
test('to test the property `timestamp`', () async {
|
||||||
|
// TODO
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
16
pubspec.lock
16
pubspec.lock
@ -353,6 +353,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.0.3"
|
version: "5.0.3"
|
||||||
|
equatable:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: equatable
|
||||||
|
sha256: "3e0141505477fd8ad55d6eb4e7776d3fe8430be8e497ccb1521370c3f21a3e2b"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.0.8"
|
||||||
fake_async:
|
fake_async:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -457,6 +465,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.0"
|
version: "1.1.0"
|
||||||
|
fl_chart:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: fl_chart
|
||||||
|
sha256: "74959b99b92b9eebeed1a4049426fd67c4abc3c5a0f4d12e2877097d6a11ae08"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.69.2"
|
||||||
flare_flutter:
|
flare_flutter:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|||||||
@ -77,6 +77,7 @@ dependencies:
|
|||||||
flutter_widget_from_html: ^0.15.3
|
flutter_widget_from_html: ^0.15.3
|
||||||
firebase_storage: ^12.0.1
|
firebase_storage: ^12.0.1
|
||||||
firebase_core: ^3.1.0
|
firebase_core: ^3.1.0
|
||||||
|
fl_chart: ^0.69.0
|
||||||
#another_flushbar: ^1.12.30
|
#another_flushbar: ^1.12.30
|
||||||
|
|
||||||
dependency_overrides:
|
dependency_overrides:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user