Yimaru-Mobile/lib/models/course_unit.dart

81 lines
1.9 KiB
Dart

import 'package:json_annotation/json_annotation.dart';
import 'package:yimaru_app/models/course_module.dart';
part 'course_unit.g.dart';
@JsonSerializable()
class CourseUnit {
final int? id;
final String? name;
final String? thumbnail;
final String? description;
final List<CourseModule>? modules;
@JsonKey(name: 'sort_order')
final int? sortOrder;
@JsonKey(name: 'has_practice')
final bool? hasPractice;
@JsonKey(name: 'lessons_count')
final int? lessonsCount;
@JsonKey(name: 'modules_count')
final int? modulesCount;
@JsonKey(name: 'practices_count')
final int? practice;
@JsonKey(name: 'catalog_course_id')
final int? catalogCourseId;
const CourseUnit(
{this.id,
this.name,
this.modules,
this.practice,
this.thumbnail,
this.sortOrder,
this.hasPractice,
this.description,
this.modulesCount,
this.lessonsCount,
this.catalogCourseId});
factory CourseUnit.fromJson(Map<String, dynamic> json) =>
_$CourseUnitFromJson(json);
Map<String, dynamic> toJson() => _$CourseUnitToJson(this);
CourseUnit copyWith({
int? id,
String? name,
int? practice,
int? sortOrder,
bool? hasPractice,
int? lessonsCount,
int? modulesCount,
String? thumbnail,
String? description,
int? catalogCourseId,
List<CourseModule>? modules,
}) =>
CourseUnit(
id: id ?? this.id,
name: name ?? this.name,
modules: modules ?? this.modules,
practice: practice ?? this.practice,
thumbnail: thumbnail ?? this.thumbnail,
sortOrder: sortOrder ?? this.sortOrder,
hasPractice: hasPractice ?? this.hasPractice,
description: description ?? this.description,
lessonsCount: lessonsCount ?? this.lessonsCount,
modulesCount: modulesCount ?? this.modulesCount,
catalogCourseId: catalogCourseId ?? this.catalogCourseId,
);
}