Browse Source

add: hive database and create database schema

pull/9/head
AmirrezaChegini 1 week ago
parent
commit
8aec8c6c8b
  1. 1
      lib/core/constants/my_constants.dart
  2. 2
      lib/features/level/data/model/level_model.dart
  3. 27
      lib/features/level/domain/entity/level_entity.dart
  4. 50
      lib/features/level/domain/entity/level_entity.g.dart
  5. 2
      lib/features/question/data/model/question_model.dart
  6. 29
      lib/features/question/domain/entity/answer_entity.dart
  7. 56
      lib/features/question/domain/entity/answer_entity.g.dart
  8. 19
      lib/features/question/domain/entity/file_entity.dart
  9. 47
      lib/features/question/domain/entity/file_entity.g.dart
  10. 40
      lib/features/question/domain/entity/question_entity.dart
  11. 62
      lib/features/question/domain/entity/question_entity.g.dart
  12. 21
      lib/init_bindings.dart
  13. 1
      lib/main.dart
  14. 306
      pubspec.lock
  15. 4
      pubspec.yaml

1
lib/core/constants/my_constants.dart

@ -5,4 +5,5 @@ class MyConstants {
static const String token = 'TOKEN'; static const String token = 'TOKEN';
static const String theme = 'THEME'; static const String theme = 'THEME';
static const String levelBox = 'LEVEL_BOX';
} }

2
lib/features/level/data/model/level_model.dart

@ -1,7 +1,7 @@
import 'package:hadi_hoda_flutter/features/level/domain/entity/level_entity.dart'; import 'package:hadi_hoda_flutter/features/level/domain/entity/level_entity.dart';
class LevelModel extends LevelEntity { class LevelModel extends LevelEntity {
const LevelModel({
LevelModel({
super.id, super.id,
}); });

27
lib/features/level/domain/entity/level_entity.dart

@ -1,14 +1,23 @@
import 'package:equatable/equatable.dart';
import 'package:hadi_hoda_flutter/features/question/domain/entity/question_entity.dart';
import 'package:hive/hive.dart';
class LevelEntity extends Equatable {
final int? id;
part 'level_entity.g.dart';
const LevelEntity({
@HiveType(typeId: 0)
class LevelEntity extends HiveObject {
@HiveField(0)
int? id;
@HiveField(1)
int? order;
@HiveField(2)
String? title;
@HiveField(3)
List<QuestionEntity>? questions;
LevelEntity({
this.id, this.id,
this.order,
this.title,
this.questions,
}); });
@override
List<Object?> get props => [
id,
];
} }

50
lib/features/level/domain/entity/level_entity.g.dart

@ -0,0 +1,50 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'level_entity.dart';
// **************************************************************************
// TypeAdapterGenerator
// **************************************************************************
class LevelEntityAdapter extends TypeAdapter<LevelEntity> {
@override
final int typeId = 0;
@override
LevelEntity read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return LevelEntity(
id: fields[0] as int?,
order: fields[1] as int?,
title: fields[2] as String?,
questions: (fields[3] as List?)?.cast<QuestionEntity>(),
);
}
@override
void write(BinaryWriter writer, LevelEntity obj) {
writer
..writeByte(4)
..writeByte(0)
..write(obj.id)
..writeByte(1)
..write(obj.order)
..writeByte(2)
..write(obj.title)
..writeByte(3)
..write(obj.questions);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is LevelEntityAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}

2
lib/features/question/data/model/question_model.dart

@ -1,7 +1,7 @@
import 'package:hadi_hoda_flutter/features/question/domain/entity/question_entity.dart'; import 'package:hadi_hoda_flutter/features/question/domain/entity/question_entity.dart';
class QuestionModel extends QuestionEntity { class QuestionModel extends QuestionEntity {
const QuestionModel({
QuestionModel({
super.id, super.id,
}); });

29
lib/features/question/domain/entity/answer_entity.dart

@ -0,0 +1,29 @@
import 'package:hadi_hoda_flutter/features/question/domain/entity/file_entity.dart';
import 'package:hive/hive.dart';
part 'answer_entity.g.dart';
@HiveType(typeId: 2)
class AnswerEntity extends HiveObject {
@HiveField(0)
int? id;
@HiveField(1)
String? title;
@HiveField(2)
String? imageId;
@HiveField(3)
FileEntity? imageInfo;
@HiveField(4)
int? order;
@HiveField(5)
bool? isActive;
AnswerEntity({
this.id,
this.title,
this.imageId,
this.imageInfo,
this.order,
this.isActive,
});
}

56
lib/features/question/domain/entity/answer_entity.g.dart

@ -0,0 +1,56 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'answer_entity.dart';
// **************************************************************************
// TypeAdapterGenerator
// **************************************************************************
class AnswerEntityAdapter extends TypeAdapter<AnswerEntity> {
@override
final int typeId = 2;
@override
AnswerEntity read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return AnswerEntity(
id: fields[0] as int?,
title: fields[1] as String?,
imageId: fields[2] as String?,
imageInfo: fields[3] as FileEntity?,
order: fields[4] as int?,
isActive: fields[5] as bool?,
);
}
@override
void write(BinaryWriter writer, AnswerEntity obj) {
writer
..writeByte(6)
..writeByte(0)
..write(obj.id)
..writeByte(1)
..write(obj.title)
..writeByte(2)
..write(obj.imageId)
..writeByte(3)
..write(obj.imageInfo)
..writeByte(4)
..write(obj.order)
..writeByte(5)
..write(obj.isActive);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is AnswerEntityAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}

19
lib/features/question/domain/entity/file_entity.dart

@ -0,0 +1,19 @@
import 'package:hive/hive.dart';
part 'file_entity.g.dart';
@HiveType(typeId: 3)
class FileEntity extends HiveObject {
@HiveField(0)
String? filename;
@HiveField(1)
int? size;
@HiveField(2)
String? extension;
FileEntity({
this.filename,
this.size,
this.extension,
});
}

47
lib/features/question/domain/entity/file_entity.g.dart

@ -0,0 +1,47 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'file_entity.dart';
// **************************************************************************
// TypeAdapterGenerator
// **************************************************************************
class FileEntityAdapter extends TypeAdapter<FileEntity> {
@override
final int typeId = 3;
@override
FileEntity read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return FileEntity(
filename: fields[0] as String?,
size: fields[1] as int?,
extension: fields[2] as String?,
);
}
@override
void write(BinaryWriter writer, FileEntity obj) {
writer
..writeByte(3)
..writeByte(0)
..write(obj.filename)
..writeByte(1)
..write(obj.size)
..writeByte(2)
..write(obj.extension);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is FileEntityAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}

40
lib/features/question/domain/entity/question_entity.dart

@ -1,14 +1,36 @@
import 'package:equatable/equatable.dart';
import 'package:hadi_hoda_flutter/features/question/domain/entity/answer_entity.dart';
import 'package:hadi_hoda_flutter/features/question/domain/entity/file_entity.dart';
import 'package:hive/hive.dart';
class QuestionEntity extends Equatable {
final int? id;
part 'question_entity.g.dart';
const QuestionEntity({
@HiveType(typeId: 1)
class QuestionEntity extends HiveObject {
@HiveField(0)
int? id;
@HiveField(1)
String? title;
@HiveField(2)
String? audioId;
@HiveField(3)
FileEntity? audioInfo;
@HiveField(4)
int? order;
@HiveField(5)
int? correctAnswer;
@HiveField(6)
bool? isActive;
@HiveField(7)
List<AnswerEntity>? answers;
QuestionEntity({
this.id, this.id,
this.title,
this.audioId,
this.audioInfo,
this.order,
this.correctAnswer,
this.isActive,
this.answers,
}); });
@override
List<Object?> get props => [
id,
];
} }

62
lib/features/question/domain/entity/question_entity.g.dart

@ -0,0 +1,62 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'question_entity.dart';
// **************************************************************************
// TypeAdapterGenerator
// **************************************************************************
class QuestionEntityAdapter extends TypeAdapter<QuestionEntity> {
@override
final int typeId = 1;
@override
QuestionEntity read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return QuestionEntity(
id: fields[0] as int?,
title: fields[1] as String?,
audioId: fields[2] as String?,
audioInfo: fields[3] as FileEntity?,
order: fields[4] as int?,
correctAnswer: fields[5] as int?,
isActive: fields[6] as bool?,
answers: (fields[7] as List?)?.cast<AnswerEntity>(),
);
}
@override
void write(BinaryWriter writer, QuestionEntity obj) {
writer
..writeByte(8)
..writeByte(0)
..write(obj.id)
..writeByte(1)
..write(obj.title)
..writeByte(2)
..write(obj.audioId)
..writeByte(3)
..write(obj.audioInfo)
..writeByte(4)
..write(obj.order)
..writeByte(5)
..write(obj.correctAnswer)
..writeByte(6)
..write(obj.isActive)
..writeByte(7)
..write(obj.answers);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is QuestionEntityAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}

21
lib/init_bindings.dart

@ -1,3 +1,6 @@
import 'dart:io';
import 'package:hadi_hoda_flutter/core/constants/my_constants.dart';
import 'package:hadi_hoda_flutter/core/network/http_request.dart'; import 'package:hadi_hoda_flutter/core/network/http_request.dart';
import 'package:hadi_hoda_flutter/core/network/http_request_impl.dart'; import 'package:hadi_hoda_flutter/core/network/http_request_impl.dart';
import 'package:hadi_hoda_flutter/features/intro/data/datasource/intro_datasource.dart'; import 'package:hadi_hoda_flutter/features/intro/data/datasource/intro_datasource.dart';
@ -6,10 +9,14 @@ import 'package:hadi_hoda_flutter/features/intro/domain/repository/intro_reposit
import 'package:hadi_hoda_flutter/features/intro/domain/usecases/get_intro_usecase.dart'; import 'package:hadi_hoda_flutter/features/intro/domain/usecases/get_intro_usecase.dart';
import 'package:hadi_hoda_flutter/features/level/data/datasource/level_datasource.dart'; import 'package:hadi_hoda_flutter/features/level/data/datasource/level_datasource.dart';
import 'package:hadi_hoda_flutter/features/level/data/repository_impl/level_repository_impl.dart'; import 'package:hadi_hoda_flutter/features/level/data/repository_impl/level_repository_impl.dart';
import 'package:hadi_hoda_flutter/features/level/domain/entity/level_entity.dart';
import 'package:hadi_hoda_flutter/features/level/domain/repository/level_repository.dart'; import 'package:hadi_hoda_flutter/features/level/domain/repository/level_repository.dart';
import 'package:hadi_hoda_flutter/features/level/domain/usecases/get_level_usecase.dart'; import 'package:hadi_hoda_flutter/features/level/domain/usecases/get_level_usecase.dart';
import 'package:hadi_hoda_flutter/features/question/data/datasource/question_datasource.dart'; import 'package:hadi_hoda_flutter/features/question/data/datasource/question_datasource.dart';
import 'package:hadi_hoda_flutter/features/question/data/repository_impl/question_repository_impl.dart'; import 'package:hadi_hoda_flutter/features/question/data/repository_impl/question_repository_impl.dart';
import 'package:hadi_hoda_flutter/features/question/domain/entity/answer_entity.dart';
import 'package:hadi_hoda_flutter/features/question/domain/entity/file_entity.dart';
import 'package:hadi_hoda_flutter/features/question/domain/entity/question_entity.dart';
import 'package:hadi_hoda_flutter/features/question/domain/repository/question_repository.dart'; import 'package:hadi_hoda_flutter/features/question/domain/repository/question_repository.dart';
import 'package:hadi_hoda_flutter/features/question/domain/usecases/get_question_usecase.dart'; import 'package:hadi_hoda_flutter/features/question/domain/usecases/get_question_usecase.dart';
import 'package:hadi_hoda_flutter/features/sample/data/datasource/sample_datasource.dart'; import 'package:hadi_hoda_flutter/features/sample/data/datasource/sample_datasource.dart';
@ -17,6 +24,8 @@ import 'package:hadi_hoda_flutter/features/sample/data/repository_impl/sample_re
import 'package:hadi_hoda_flutter/features/sample/domain/repository/sample_repository.dart'; import 'package:hadi_hoda_flutter/features/sample/domain/repository/sample_repository.dart';
import 'package:hadi_hoda_flutter/features/sample/domain/usecases/get_sample_usecase.dart'; import 'package:hadi_hoda_flutter/features/sample/domain/usecases/get_sample_usecase.dart';
import 'package:get_it/get_it.dart'; import 'package:get_it/get_it.dart';
import 'package:hive/hive.dart';
import 'package:path_provider/path_provider.dart';
final GetIt locator = GetIt.I; final GetIt locator = GetIt.I;
@ -44,3 +53,15 @@ void initBindings() {
locator.registerLazySingleton<ILevelRepository>(() => LevelRepositoryImpl(locator())); locator.registerLazySingleton<ILevelRepository>(() => LevelRepositoryImpl(locator()));
locator.registerLazySingleton<GetLevelUseCase>(() => GetLevelUseCase(locator())); locator.registerLazySingleton<GetLevelUseCase>(() => GetLevelUseCase(locator()));
} }
Future<void> initDataBase() async {
final Directory dir = await getApplicationDocumentsDirectory();
Hive
..init(dir.path)
..registerAdapter<FileEntity>(FileEntityAdapter())
..registerAdapter<AnswerEntity>(AnswerEntityAdapter())
..registerAdapter<QuestionEntity>(QuestionEntityAdapter())
..registerAdapter<LevelEntity>(LevelEntityAdapter());
await Hive.openBox<LevelEntity>(MyConstants.levelBox);
}

1
lib/main.dart

@ -14,6 +14,7 @@ Future<void> main() async {
initBindings(); initBindings();
await Future.wait([ await Future.wait([
LocalStorage.init(), LocalStorage.init(),
initDataBase(),
]); ]);
AuthStorage.loadData(); AuthStorage.loadData();
runApp(const MainApp()); runApp(const MainApp());

306
pubspec.lock

@ -1,6 +1,22 @@
# Generated by pub # Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile # See https://dart.dev/tools/pub/glossary#lockfile
packages: packages:
_fe_analyzer_shared:
dependency: transitive
description:
name: _fe_analyzer_shared
sha256: "0b2f2bd91ba804e53a61d757b986f89f1f9eaed5b11e4b2f5a2468d86d6c9fc7"
url: "https://pub.dev"
source: hosted
version: "67.0.0"
analyzer:
dependency: transitive
description:
name: analyzer
sha256: "37577842a27e4338429a1cbc32679d508836510b056f1eedf0c8d20e39c1383d"
url: "https://pub.dev"
source: hosted
version: "6.4.1"
archive: archive:
dependency: transitive dependency: transitive
description: description:
@ -41,6 +57,70 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.2" version: "2.1.2"
build:
dependency: transitive
description:
name: build
sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
build_config:
dependency: transitive
description:
name: build_config
sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33"
url: "https://pub.dev"
source: hosted
version: "1.1.2"
build_daemon:
dependency: transitive
description:
name: build_daemon
sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa"
url: "https://pub.dev"
source: hosted
version: "4.0.4"
build_resolvers:
dependency: transitive
description:
name: build_resolvers
sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a"
url: "https://pub.dev"
source: hosted
version: "2.4.2"
build_runner:
dependency: "direct dev"
description:
name: build_runner
sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d"
url: "https://pub.dev"
source: hosted
version: "2.4.13"
build_runner_core:
dependency: transitive
description:
name: build_runner_core
sha256: f8126682b87a7282a339b871298cc12009cb67109cfa1614d6436fb0289193e0
url: "https://pub.dev"
source: hosted
version: "7.3.2"
built_collection:
dependency: transitive
description:
name: built_collection
sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100"
url: "https://pub.dev"
source: hosted
version: "5.1.1"
built_value:
dependency: transitive
description:
name: built_value
sha256: a30f0a0e38671e89a492c44d005b5545b830a961575bbd8336d42869ff71066d
url: "https://pub.dev"
source: hosted
version: "8.12.0"
characters: characters:
dependency: transitive dependency: transitive
description: description:
@ -49,6 +129,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.4.0" version: "1.4.0"
checked_yaml:
dependency: transitive
description:
name: checked_yaml
sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f"
url: "https://pub.dev"
source: hosted
version: "2.0.4"
clock: clock:
dependency: transitive dependency: transitive
description: description:
@ -57,6 +145,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.2" version: "1.1.2"
code_builder:
dependency: transitive
description:
name: code_builder
sha256: "11654819532ba94c34de52ff5feb52bd81cba1de00ef2ed622fd50295f9d4243"
url: "https://pub.dev"
source: hosted
version: "4.11.0"
collection: collection:
dependency: transitive dependency: transitive
description: description:
@ -65,6 +161,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.19.1" version: "1.19.1"
convert:
dependency: transitive
description:
name: convert
sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68
url: "https://pub.dev"
source: hosted
version: "3.1.2"
crypto: crypto:
dependency: transitive dependency: transitive
description: description:
@ -73,6 +177,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.6" version: "3.0.6"
dart_style:
dependency: transitive
description:
name: dart_style
sha256: "99e066ce75c89d6b29903d788a7bb9369cf754f7b24bf70bf4b6d6d6b26853b9"
url: "https://pub.dev"
source: hosted
version: "2.3.6"
dio: dio:
dependency: "direct main" dependency: "direct main"
description: description:
@ -129,6 +241,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "7.0.1" version: "7.0.1"
fixnum:
dependency: transitive
description:
name: fixnum
sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be
url: "https://pub.dev"
source: hosted
version: "1.1.1"
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
@ -173,6 +293,14 @@ packages:
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
frontend_server_client:
dependency: transitive
description:
name: frontend_server_client
sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694
url: "https://pub.dev"
source: hosted
version: "4.0.0"
get_it: get_it:
dependency: "direct main" dependency: "direct main"
description: description:
@ -181,6 +309,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "8.2.0" version: "8.2.0"
glob:
dependency: transitive
description:
name: glob
sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de
url: "https://pub.dev"
source: hosted
version: "2.1.3"
go_router: go_router:
dependency: "direct main" dependency: "direct main"
description: description:
@ -197,6 +333,30 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.3.2" version: "6.3.2"
graphs:
dependency: transitive
description:
name: graphs
sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0"
url: "https://pub.dev"
source: hosted
version: "2.3.2"
hive:
dependency: "direct main"
description:
name: hive
sha256: "8dcf6db979d7933da8217edcec84e9df1bdb4e4edc7fc77dbd5aa74356d6d941"
url: "https://pub.dev"
source: hosted
version: "2.2.3"
hive_generator:
dependency: "direct dev"
description:
name: hive_generator
sha256: "06cb8f58ace74de61f63500564931f9505368f45f98958bd7a6c35ba24159db4"
url: "https://pub.dev"
source: hosted
version: "2.0.1"
http: http:
dependency: transitive dependency: transitive
description: description:
@ -205,6 +365,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.5.0" version: "1.5.0"
http_multi_server:
dependency: transitive
description:
name: http_multi_server
sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8
url: "https://pub.dev"
source: hosted
version: "3.2.2"
http_parser: http_parser:
dependency: transitive dependency: transitive
description: description:
@ -221,6 +389,30 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.20.2" version: "0.20.2"
io:
dependency: transitive
description:
name: io
sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b
url: "https://pub.dev"
source: hosted
version: "1.0.5"
js:
dependency: transitive
description:
name: js
sha256: "53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc"
url: "https://pub.dev"
source: hosted
version: "0.7.2"
json_annotation:
dependency: transitive
description:
name: json_annotation
sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1"
url: "https://pub.dev"
source: hosted
version: "4.9.0"
leak_tracker: leak_tracker:
dependency: transitive dependency: transitive
description: description:
@ -309,6 +501,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.0" version: "1.0.0"
package_config:
dependency: transitive
description:
name: package_config
sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc
url: "https://pub.dev"
source: hosted
version: "2.2.0"
path: path:
dependency: transitive dependency: transitive
description: description:
@ -334,7 +534,7 @@ packages:
source: hosted source: hosted
version: "1.1.0" version: "1.1.0"
path_provider: path_provider:
dependency: transitive
dependency: "direct main"
description: description:
name: path_provider name: path_provider
sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd" sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd"
@ -405,6 +605,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.8" version: "2.1.8"
pool:
dependency: transitive
description:
name: pool
sha256: "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d"
url: "https://pub.dev"
source: hosted
version: "1.5.2"
posix: posix:
dependency: transitive dependency: transitive
description: description:
@ -429,6 +637,22 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.1.5+1" version: "6.1.5+1"
pub_semver:
dependency: transitive
description:
name: pub_semver
sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585"
url: "https://pub.dev"
source: hosted
version: "2.2.0"
pubspec_parse:
dependency: transitive
description:
name: pubspec_parse
sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082"
url: "https://pub.dev"
source: hosted
version: "1.5.0"
shared_preferences: shared_preferences:
dependency: "direct main" dependency: "direct main"
description: description:
@ -485,6 +709,22 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.4.1" version: "2.4.1"
shelf:
dependency: transitive
description:
name: shelf
sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12
url: "https://pub.dev"
source: hosted
version: "1.4.2"
shelf_web_socket:
dependency: transitive
description:
name: shelf_web_socket
sha256: cc36c297b52866d203dbf9332263c94becc2fe0ceaa9681d07b6ef9807023b67
url: "https://pub.dev"
source: hosted
version: "2.0.1"
showcaseview: showcaseview:
dependency: "direct main" dependency: "direct main"
description: description:
@ -498,6 +738,22 @@ packages:
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
source_gen:
dependency: transitive
description:
name: source_gen
sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832"
url: "https://pub.dev"
source: hosted
version: "1.5.0"
source_helper:
dependency: transitive
description:
name: source_helper
sha256: "86d247119aedce8e63f4751bd9626fc9613255935558447569ad42f9f5b48b3c"
url: "https://pub.dev"
source: hosted
version: "1.3.5"
source_span: source_span:
dependency: transitive dependency: transitive
description: description:
@ -522,6 +778,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.4" version: "2.1.4"
stream_transform:
dependency: transitive
description:
name: stream_transform
sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871
url: "https://pub.dev"
source: hosted
version: "2.1.1"
string_scanner: string_scanner:
dependency: transitive dependency: transitive
description: description:
@ -546,6 +810,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.7.6" version: "0.7.6"
timing:
dependency: transitive
description:
name: timing
sha256: "62ee18aca144e4a9f29d212f5a4c6a053be252b895ab14b5821996cff4ed90fe"
url: "https://pub.dev"
source: hosted
version: "1.0.2"
typed_data: typed_data:
dependency: transitive dependency: transitive
description: description:
@ -594,6 +866,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "15.0.2" version: "15.0.2"
watcher:
dependency: transitive
description:
name: watcher
sha256: "5bf046f41320ac97a469d506261797f35254fa61c641741ef32dacda98b7d39c"
url: "https://pub.dev"
source: hosted
version: "1.1.3"
web: web:
dependency: transitive dependency: transitive
description: description:
@ -602,6 +882,22 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.1" version: "1.1.1"
web_socket:
dependency: transitive
description:
name: web_socket
sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c"
url: "https://pub.dev"
source: hosted
version: "1.0.1"
web_socket_channel:
dependency: transitive
description:
name: web_socket_channel
sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8
url: "https://pub.dev"
source: hosted
version: "3.0.3"
xdg_directories: xdg_directories:
dependency: transitive dependency: transitive
description: description:
@ -618,6 +914,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.6.1" version: "6.6.1"
yaml:
dependency: transitive
description:
name: yaml
sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce
url: "https://pub.dev"
source: hosted
version: "3.1.3"
sdks: sdks:
dart: ">=3.9.2 <4.0.0" dart: ">=3.9.2 <4.0.0"
flutter: ">=3.35.0" flutter: ">=3.35.0"

4
pubspec.yaml

@ -20,8 +20,10 @@ dependencies:
get_it: ^8.2.0 get_it: ^8.2.0
go_router: ^16.1.0 go_router: ^16.1.0
google_fonts: ^6.3.2 google_fonts: ^6.3.2
hive: ^2.2.3
intl: ^0.20.2 intl: ^0.20.2
path_drawing: ^1.0.1 path_drawing: ^1.0.1
path_provider: ^2.1.5
pretty_dio_logger: ^1.4.0 pretty_dio_logger: ^1.4.0
shared_preferences: ^2.5.3 shared_preferences: ^2.5.3
showcaseview: ^4.0.1 showcaseview: ^4.0.1
@ -30,6 +32,8 @@ dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
flutter_lints: ^5.0.0 flutter_lints: ^5.0.0
hive_generator: ^2.0.1
build_runner: ^2.4.13
flutter: flutter:
uses-material-design: true uses-material-design: true

Loading…
Cancel
Save