Skip to content

Commit

Permalink
Updated enum models
Browse files Browse the repository at this point in the history
  • Loading branch information
reza00farjam committed Oct 1, 2023
1 parent 1cda09e commit 153ce0c
Show file tree
Hide file tree
Showing 21 changed files with 337 additions and 311 deletions.
2 changes: 1 addition & 1 deletion lib/app/constants/strings.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
class ArchiveStrings {
ArchiveStrings._();

static const all = 'همه';
static const none = 'همه';
static const loadMore = 'مشاهده‌ی موارد بیشتر';
static const search = ' جستجو ...';
static const loading = 'لطفا صبر کنید ...';
Expand Down
12 changes: 6 additions & 6 deletions lib/app/controllers/courses.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'package:cse_archive/app/constants/sizes.dart';
import 'package:cse_archive/app/models/course.dart';
import 'package:cse_archive/app/models/course_type.dart';
import 'package:cse_archive/app/models/course_units.dart';
import 'package:cse_archive/app/models/course_type_enum.dart';
import 'package:cse_archive/app/models/course_units_enum.dart';
import 'package:cse_archive/app/services/api.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
Expand All @@ -10,10 +10,10 @@ class CoursesController extends GetxController with StateMixin {
static const searchQueryParameter = 'search';
static const typeQueryParameter = 'type';
static const unitsQueryParameter = 'units';
static const typeQueryOptions = CourseTypeModel.options;
static const unitsQueryOptions = CourseUnitsModel.options;
static const typeQueryDefault = CourseTypeModel.defaultOption;
static const unitsQueryDefault = CourseUnitsModel.defaultOption;
static const typeQueryOptions = CourseTypeEnumModel.values;
static const unitsQueryOptions = CourseUnitsEnumModel.values;
static const typeQueryDefault = CourseTypeEnumModel.none;
static const unitsQueryDefault = CourseUnitsEnumModel.none;

final selectedType = typeQueryDefault.obs;
final selectedUnits = unitsQueryDefault.obs;
Expand Down
11 changes: 5 additions & 6 deletions lib/app/controllers/professors.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:cse_archive/app/constants/sizes.dart';
import 'package:cse_archive/app/models/professor_department.dart';
import 'package:cse_archive/app/models/professor_department_enum.dart';
import 'package:cse_archive/app/models/professor.dart';
import 'package:cse_archive/app/services/api.dart';
import 'package:flutter/material.dart';
Expand All @@ -8,9 +8,9 @@ import 'package:get/get.dart';
class ProfessorsController extends GetxController with StateMixin {
static const searchQueryParameter = 'search';
static const departmentQueryParameter = 'department';
static const departmentQueryDefault = ProfessorDepartmentModel.defaultOption;
static const departmentQueryDefault = ProfessorDepartmentEnumModel.none;

late List<ProfessorDepartmentModel> departmentQueryOptions = [];
late List<ProfessorDepartmentEnumModel> departmentQueryOptions = [];

final selectedDepartment = departmentQueryDefault.obs;

Expand Down Expand Up @@ -70,11 +70,10 @@ class ProfessorsController extends GetxController with StateMixin {
if (departmentQueryOptions.isEmpty) {
change(null, status: RxStatus.loading());

final options = await APIService.to.professorDepartments();
final options = await ProfessorDepartmentEnumModel.values;

if (options != null) {
departmentQueryOptions = [ProfessorDepartmentModel.defaultOption];
departmentQueryOptions.addAll(options);
departmentQueryOptions = options;

change(null, status: RxStatus.success());
} else {
Expand Down
6 changes: 3 additions & 3 deletions lib/app/controllers/references.dart
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import 'package:cse_archive/app/constants/sizes.dart';
import 'package:cse_archive/app/models/reference.dart';
import 'package:cse_archive/app/models/reference_type.dart';
import 'package:cse_archive/app/models/reference_type_enum.dart';
import 'package:cse_archive/app/services/api.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';

class ReferencesController extends GetxController with StateMixin {
static const searchQueryParameter = 'search';
static const typeQueryParameter = 'type';
static const typeQueryOptions = ReferenceTypeModel.options;
static const typeQueryDefault = ReferenceTypeModel.defaultOption;
static const typeQueryDefault = ReferenceTypeEnumModel.none;
static const typeQueryOptions = ReferenceTypeEnumModel.values;

final selectedType = typeQueryDefault.obs;

Expand Down
6 changes: 3 additions & 3 deletions lib/app/controllers/resources.dart
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import 'package:cse_archive/app/constants/sizes.dart';
import 'package:cse_archive/app/models/resource.dart';
import 'package:cse_archive/app/models/resource_type.dart';
import 'package:cse_archive/app/models/resource_type_enum.dart';
import 'package:cse_archive/app/services/api.dart';
import 'package:get/get.dart';

class ResourcesController extends GetxController with StateMixin {
static const typeQueryParameter = 'type';
static const typeQueryOptions = ResourceTypeModel.options;
static const typeQueryDefault = ResourceTypeModel.defaultOption;
static const typeQueryOptions = ResourceTypeEnumModel.values;
static const typeQueryDefault = ResourceTypeEnumModel.none;

final selectedType = typeQueryDefault.obs;

Expand Down
12 changes: 6 additions & 6 deletions lib/app/models/chart_node.dart
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import 'course.dart';
import 'course_type.dart';
import 'course_units.dart';
import 'course_type_enum.dart';
import 'course_units_enum.dart';

class ChartNodeModel {
final int semester;
final int column;
final CourseModel? course;
final CourseTypeModel? courseType;
final CourseUnitsModel? courseUnits;
final CourseTypeEnumModel? courseType;
final CourseUnitsEnumModel? courseUnits;

ChartNodeModel({
required this.semester,
Expand All @@ -29,12 +29,12 @@ class ChartNodeModel {
course: CourseModel.fromJson(json['course']),
courseType: courseType == null
? null
: CourseTypeModel.fromJson(
: CourseTypeEnumModel.fromJson(
courseType,
),
courseUnits: courseUnits == null
? null
: CourseUnitsModel.fromJson(
: CourseUnitsEnumModel.fromJson(
courseUnits,
),
);
Expand Down
12 changes: 6 additions & 6 deletions lib/app/models/course.dart
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import 'classroom.dart';
import 'course_type.dart';
import 'course_units.dart';
import 'course_type_enum.dart';
import 'course_units_enum.dart';
import 'reference.dart';
import 'professor.dart';

class CourseModel {
final String uuid;
final String title;
final CourseUnitsModel units;
final CourseTypeModel type;
final CourseUnitsEnumModel units;
final CourseTypeEnumModel type;
final String? titleEn;
final String? description;
final String? tag;
Expand Down Expand Up @@ -46,8 +46,8 @@ class CourseModel {
uuid: json['uuid'],
title: json['title'],
titleEn: json['en_title'],
units: CourseUnitsModel.fromJson(json['units']),
type: CourseTypeModel.fromJson(json['type']),
units: CourseUnitsEnumModel.fromJson(json['units']),
type: CourseTypeEnumModel.fromJson(json['type']),
description: json['description'],
tag: json['tag'],
knownAs: json['known_as'],
Expand Down
48 changes: 0 additions & 48 deletions lib/app/models/course_type.dart

This file was deleted.

50 changes: 50 additions & 0 deletions lib/app/models/course_type_enum.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import 'package:cse_archive/app/constants/strings.dart';
import 'package:cse_archive/app/models/base_enum.dart';

class CourseTypeEnumModel extends BaseEnumModel {
const CourseTypeEnumModel._({
required int? super.value,
required super.representation,
required super.queryParameterValue,
});

int? toJson() => value;

static CourseTypeEnumModel fromJson(int value) {
return values.firstWhere(
(courseTypeModel) => courseTypeModel.value == value,
);
}

static const none = CourseTypeEnumModel._(
value: null,
representation: ArchiveStrings.none,
queryParameterValue: '',
);

static const specialized = CourseTypeEnumModel._(
value: 1,
representation: ArchiveStrings.courseTypeSpecialized,
queryParameterValue: 'specialized',
);

static const optional = CourseTypeEnumModel._(
value: 2,
representation: ArchiveStrings.courseTypeOptional,
queryParameterValue: 'optional',
);

static const basic = CourseTypeEnumModel._(
value: 3,
representation: ArchiveStrings.courseTypeBasic,
queryParameterValue: 'basic',
);

static const general = CourseTypeEnumModel._(
value: 4,
representation: ArchiveStrings.courseTypeGeneral,
queryParameterValue: 'general',
);

static const values = [none, specialized, optional, basic, general];
}
43 changes: 0 additions & 43 deletions lib/app/models/course_units.dart

This file was deleted.

44 changes: 44 additions & 0 deletions lib/app/models/course_units_enum.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import 'package:cse_archive/app/constants/strings.dart';
import 'package:cse_archive/app/models/base_enum.dart';

class CourseUnitsEnumModel extends BaseEnumModel {
const CourseUnitsEnumModel._({
required int? super.value,
required super.representation,
required super.queryParameterValue,
});

int? toJson() => value;

static CourseUnitsEnumModel fromJson(int value) {
return values.firstWhere(
(courseUnitsModel) => courseUnitsModel.value == value,
);
}

static const none = CourseUnitsEnumModel._(
value: null,
representation: ArchiveStrings.none,
queryParameterValue: '',
);

static const one = CourseUnitsEnumModel._(
value: 1,
representation: ArchiveStrings.courseUnits1,
queryParameterValue: '1',
);

static const two = CourseUnitsEnumModel._(
value: 2,
representation: ArchiveStrings.courseUnits2,
queryParameterValue: '2',
);

static const three = CourseUnitsEnumModel._(
value: 3,
representation: ArchiveStrings.courseUnits3,
queryParameterValue: '3',
);

static const values = [none, one, two, three];
}
6 changes: 3 additions & 3 deletions lib/app/models/professor.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import 'course.dart';
import 'link.dart';
import 'professor_department.dart';
import 'professor_department_enum.dart';

class ProfessorModel {
final String uuid;
final ProfessorDepartmentModel department;
final ProfessorDepartmentEnumModel department;
final String? honorific;
final String? firstName;
final String? lastName;
Expand Down Expand Up @@ -47,7 +47,7 @@ class ProfessorModel {

return ProfessorModel(
uuid: json['uuid'],
department: ProfessorDepartmentModel.fromJson(json['department']),
department: ProfessorDepartmentEnumModel.fromJson(json['department']),
honorific: json['honorific'],
firstName: json['first_name'],
lastName: json['last_name'],
Expand Down
Loading

0 comments on commit 153ce0c

Please sign in to comment.