ReportTemplate.fromJson constructor

ReportTemplate.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory ReportTemplate.fromJson(Map<String, dynamic> json) {
  return ReportTemplate(
    id: json['id'],
    name: json['name'],
    description: json['description'],
    reportType: ReportType.values.firstWhere(
      (e) => e.name == json['reportType'],
      orElse: () => ReportType.label,
    ),
    pageWidth: (json['pageWidth'] as num).toDouble(),
    pageHeight: (json['pageHeight'] as num).toDouble(),
    pageFormat: PageFormat.values.firstWhere(
      (e) => e.name == json['pageFormat'],
      orElse: () => PageFormat.a4Portrait,
    ),
    marginTop: (json['marginTop'] as num?)?.toDouble() ?? 10,
    marginBottom: (json['marginBottom'] as num?)?.toDouble() ?? 10,
    marginLeft: (json['marginLeft'] as num?)?.toDouble() ?? 10,
    marginRight: (json['marginRight'] as num?)?.toDouble() ?? 10,
    itemsPerRow: json['itemsPerRow'] ?? 3,
    itemsPerColumn: json['itemsPerColumn'] ?? 8,
    horizontalGap: (json['horizontalGap'] as num?)?.toDouble() ?? 2,
    verticalGap: (json['verticalGap'] as num?)?.toDouble() ?? 2,
    itemWidth: (json['itemWidth'] as num?)?.toDouble() ?? 50,
    itemHeight: (json['itemHeight'] as num?)?.toDouble() ?? 30,
    elements:
        (json['elements'] as List?)
            ?.map((e) => ReportElement.fromJson(e))
            .toList() ??
        [],
    dataSchemaName: json['dataSchemaName'],
    dataSchema: json['dataSchema'] != null
        ? DataSchema.fromJson(json['dataSchema'])
        : null,
    createdAt: json['createdAt'] != null
        ? DateTime.parse(json['createdAt'])
        : DateTime.now(),
    updatedAt: json['updatedAt'] != null
        ? DateTime.parse(json['updatedAt'])
        : DateTime.now(),
  );
}