tablet-app/manager_api_new/lib/model/section_quiz.dart
Thomas Fransolet 0cd2b47211 WIP Version 3.0
2025-05-23 17:07:04 +02:00

354 lines
12 KiB
Dart

//
// 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 SectionQuiz {
/// Returns a new [SectionQuiz] instance.
SectionQuiz({
required this.id,
required this.label,
this.title = const [],
required this.configurationId,
required this.type,
required this.isSubSection,
required this.instanceId,
this.quizQuestions = const [],
this.quizBadLevel = const [],
this.quizMediumLevel = const [],
this.quizGoodLevel = const [],
this.quizGreatLevel = const [],
this.description = const [],
this.order,
this.imageId,
this.imageSource,
this.parentId,
this.dateCreation,
this.isBeacon,
this.beaconId,
this.latitude,
this.longitude,
this.meterZoneGPS,
});
String id;
String label;
List<TranslationDTO> title;
String configurationId;
SectionType type;
bool isSubSection;
String instanceId;
List<QuizQuestion> quizQuestions;
List<TranslationAndResourceDTO> quizBadLevel;
List<TranslationAndResourceDTO> quizMediumLevel;
List<TranslationAndResourceDTO> quizGoodLevel;
List<TranslationAndResourceDTO> quizGreatLevel;
List<TranslationDTO>? description;
///
/// 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;
String? imageId;
String? imageSource;
String? parentId;
///
/// 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.
///
DateTime? dateCreation;
///
/// 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? isBeacon;
int? beaconId;
String? latitude;
String? longitude;
int? meterZoneGPS;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is SectionQuiz &&
other.id == id &&
other.label == label &&
_deepEquality.equals(other.title, title) &&
other.configurationId == configurationId &&
other.type == type &&
other.isSubSection == isSubSection &&
other.instanceId == instanceId &&
_deepEquality.equals(other.quizQuestions, quizQuestions) &&
_deepEquality.equals(other.quizBadLevel, quizBadLevel) &&
_deepEquality.equals(other.quizMediumLevel, quizMediumLevel) &&
_deepEquality.equals(other.quizGoodLevel, quizGoodLevel) &&
_deepEquality.equals(other.quizGreatLevel, quizGreatLevel) &&
_deepEquality.equals(other.description, description) &&
other.order == order &&
other.imageId == imageId &&
other.imageSource == imageSource &&
other.parentId == parentId &&
other.dateCreation == dateCreation &&
other.isBeacon == isBeacon &&
other.beaconId == beaconId &&
other.latitude == latitude &&
other.longitude == longitude &&
other.meterZoneGPS == meterZoneGPS;
@override
int get hashCode =>
// ignore: unnecessary_parenthesis
(id.hashCode) +
(label.hashCode) +
(title.hashCode) +
(configurationId.hashCode) +
(type.hashCode) +
(isSubSection.hashCode) +
(instanceId.hashCode) +
(quizQuestions.hashCode) +
(quizBadLevel.hashCode) +
(quizMediumLevel.hashCode) +
(quizGoodLevel.hashCode) +
(quizGreatLevel.hashCode) +
(description == null ? 0 : description!.hashCode) +
(order == null ? 0 : order!.hashCode) +
(imageId == null ? 0 : imageId!.hashCode) +
(imageSource == null ? 0 : imageSource!.hashCode) +
(parentId == null ? 0 : parentId!.hashCode) +
(dateCreation == null ? 0 : dateCreation!.hashCode) +
(isBeacon == null ? 0 : isBeacon!.hashCode) +
(beaconId == null ? 0 : beaconId!.hashCode) +
(latitude == null ? 0 : latitude!.hashCode) +
(longitude == null ? 0 : longitude!.hashCode) +
(meterZoneGPS == null ? 0 : meterZoneGPS!.hashCode);
@override
String toString() =>
'SectionQuiz[id=$id, label=$label, title=$title, configurationId=$configurationId, type=$type, isSubSection=$isSubSection, instanceId=$instanceId, quizQuestions=$quizQuestions, quizBadLevel=$quizBadLevel, quizMediumLevel=$quizMediumLevel, quizGoodLevel=$quizGoodLevel, quizGreatLevel=$quizGreatLevel, description=$description, order=$order, imageId=$imageId, imageSource=$imageSource, parentId=$parentId, dateCreation=$dateCreation, isBeacon=$isBeacon, beaconId=$beaconId, latitude=$latitude, longitude=$longitude, meterZoneGPS=$meterZoneGPS]';
Map<String, dynamic> toJson() {
final json = <String, dynamic>{};
json[r'id'] = this.id;
json[r'label'] = this.label;
json[r'title'] = this.title;
json[r'configurationId'] = this.configurationId;
json[r'type'] = this.type;
json[r'isSubSection'] = this.isSubSection;
json[r'instanceId'] = this.instanceId;
json[r'quizQuestions'] = this.quizQuestions;
json[r'quizBadLevel'] = this.quizBadLevel;
json[r'quizMediumLevel'] = this.quizMediumLevel;
json[r'quizGoodLevel'] = this.quizGoodLevel;
json[r'quizGreatLevel'] = this.quizGreatLevel;
if (this.description != null) {
json[r'description'] = this.description;
} else {
json[r'description'] = null;
}
if (this.order != null) {
json[r'order'] = this.order;
} else {
json[r'order'] = null;
}
if (this.imageId != null) {
json[r'imageId'] = this.imageId;
} else {
json[r'imageId'] = null;
}
if (this.imageSource != null) {
json[r'imageSource'] = this.imageSource;
} else {
json[r'imageSource'] = null;
}
if (this.parentId != null) {
json[r'parentId'] = this.parentId;
} else {
json[r'parentId'] = null;
}
if (this.dateCreation != null) {
json[r'dateCreation'] = this.dateCreation!.toUtc().toIso8601String();
} else {
json[r'dateCreation'] = null;
}
if (this.isBeacon != null) {
json[r'isBeacon'] = this.isBeacon;
} else {
json[r'isBeacon'] = null;
}
if (this.beaconId != null) {
json[r'beaconId'] = this.beaconId;
} else {
json[r'beaconId'] = null;
}
if (this.latitude != null) {
json[r'latitude'] = this.latitude;
} else {
json[r'latitude'] = null;
}
if (this.longitude != null) {
json[r'longitude'] = this.longitude;
} else {
json[r'longitude'] = null;
}
if (this.meterZoneGPS != null) {
json[r'meterZoneGPS'] = this.meterZoneGPS;
} else {
json[r'meterZoneGPS'] = null;
}
return json;
}
/// Returns a new [SectionQuiz] instance and imports its values from
/// [value] if it's a [Map], null otherwise.
// ignore: prefer_constructors_over_static_methods
static SectionQuiz? 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 "SectionQuiz[$key]" is missing from JSON.');
assert(json[key] != null,
'Required key "SectionQuiz[$key]" has a null value in JSON.');
});
return true;
}());
return SectionQuiz(
id: mapValueOfType<String>(json, r'id')!,
label: mapValueOfType<String>(json, r'label')!,
title: TranslationDTO.listFromJson(json[r'title']),
configurationId: mapValueOfType<String>(json, r'configurationId')!,
type: SectionType.fromJson(json[r'type'])!,
isSubSection: mapValueOfType<bool>(json, r'isSubSection')!,
instanceId: mapValueOfType<String>(json, r'instanceId')!,
quizQuestions: QuizQuestion.listFromJson(json[r'quizQuestions']),
quizBadLevel:
TranslationAndResourceDTO.listFromJson(json[r'quizBadLevel']),
quizMediumLevel:
TranslationAndResourceDTO.listFromJson(json[r'quizMediumLevel']),
quizGoodLevel:
TranslationAndResourceDTO.listFromJson(json[r'quizGoodLevel']),
quizGreatLevel:
TranslationAndResourceDTO.listFromJson(json[r'quizGreatLevel']),
description: TranslationDTO.listFromJson(json[r'description']),
order: mapValueOfType<int>(json, r'order'),
imageId: mapValueOfType<String>(json, r'imageId'),
imageSource: mapValueOfType<String>(json, r'imageSource'),
parentId: mapValueOfType<String>(json, r'parentId'),
dateCreation: mapDateTime(json, r'dateCreation', r''),
isBeacon: mapValueOfType<bool>(json, r'isBeacon'),
beaconId: mapValueOfType<int>(json, r'beaconId'),
latitude: mapValueOfType<String>(json, r'latitude'),
longitude: mapValueOfType<String>(json, r'longitude'),
meterZoneGPS: mapValueOfType<int>(json, r'meterZoneGPS'),
);
}
return null;
}
static List<SectionQuiz> listFromJson(
dynamic json, {
bool growable = false,
}) {
final result = <SectionQuiz>[];
if (json is List && json.isNotEmpty) {
for (final row in json) {
final value = SectionQuiz.fromJson(row);
if (value != null) {
result.add(value);
}
}
}
return result.toList(growable: growable);
}
static Map<String, SectionQuiz> mapFromJson(dynamic json) {
final map = <String, SectionQuiz>{};
if (json is Map && json.isNotEmpty) {
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
for (final entry in json.entries) {
final value = SectionQuiz.fromJson(entry.value);
if (value != null) {
map[entry.key] = value;
}
}
}
return map;
}
// maps a json object with a list of SectionQuiz-objects as value to a dart map
static Map<String, List<SectionQuiz>> mapListFromJson(
dynamic json, {
bool growable = false,
}) {
final map = <String, List<SectionQuiz>>{};
if (json is Map && json.isNotEmpty) {
// ignore: parameter_assignments
json = json.cast<String, dynamic>();
for (final entry in json.entries) {
map[entry.key] = SectionQuiz.listFromJson(
entry.value,
growable: growable,
);
}
}
return map;
}
/// The list of required keys that must be present in a JSON.
static const requiredKeys = <String>{
'id',
'label',
'title',
'configurationId',
'type',
'isSubSection',
'instanceId',
'quizQuestions',
'quizBadLevel',
'quizMediumLevel',
'quizGoodLevel',
'quizGreatLevel',
};
}