From df68b0fd032eb4e43f2c477a1cc8ced7e351927f Mon Sep 17 00:00:00 2001 From: Sepehr Date: Fri, 12 Jul 2024 03:06:21 +0330 Subject: [PATCH] Add Financial model and datasource with Hive --- .../datasource/financial_Item_datasource.dart | 5 ++ lib/data/model/financial_Item.dart | 31 ++++++++++ lib/data/model/financial_Item.g.dart | 59 +++++++++++++++++++ 3 files changed, 95 insertions(+) create mode 100644 lib/data/datasource/financial_Item_datasource.dart create mode 100644 lib/data/model/financial_Item.dart create mode 100644 lib/data/model/financial_Item.g.dart diff --git a/lib/data/datasource/financial_Item_datasource.dart b/lib/data/datasource/financial_Item_datasource.dart new file mode 100644 index 0000000..f798c16 --- /dev/null +++ b/lib/data/datasource/financial_Item_datasource.dart @@ -0,0 +1,5 @@ +import 'package:currency_exchange_rate_app_flutter/data/model/financial_Item.dart'; + +abstract class IFinancialItemDataSource { + Future addItem(FinancialItem financialItem); +} diff --git a/lib/data/model/financial_Item.dart b/lib/data/model/financial_Item.dart new file mode 100644 index 0000000..9c16573 --- /dev/null +++ b/lib/data/model/financial_Item.dart @@ -0,0 +1,31 @@ +import 'package:hive/hive.dart'; + +part 'financial_Item.g.dart'; + +@HiveType(typeId: 0) +class FinancialItem { + @HiveField(0) + String? name; + @HiveField(1) + String? currentPrice; + @HiveField(2) + String? high; + @HiveField(3) + String? low; + @HiveField(4) + String? change; + @HiveField(5) + String? percent; + @HiveField(6) + String? time; + + FinancialItem( + this.name, + this.currentPrice, + this.high, + this.low, + this.change, + this.percent, + this.time, + ); +} diff --git a/lib/data/model/financial_Item.g.dart b/lib/data/model/financial_Item.g.dart new file mode 100644 index 0000000..0d7da52 --- /dev/null +++ b/lib/data/model/financial_Item.g.dart @@ -0,0 +1,59 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'financial_Item.dart'; + +// ************************************************************************** +// TypeAdapterGenerator +// ************************************************************************** + +class FinancialItemAdapter extends TypeAdapter { + @override + final int typeId = 0; + + @override + FinancialItem read(BinaryReader reader) { + final numOfFields = reader.readByte(); + final fields = { + for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(), + }; + return FinancialItem( + fields[0] as String?, + fields[1] as String?, + fields[2] as String?, + fields[3] as String?, + fields[4] as String?, + fields[5] as String?, + fields[6] as String?, + ); + } + + @override + void write(BinaryWriter writer, FinancialItem obj) { + writer + ..writeByte(7) + ..writeByte(0) + ..write(obj.name) + ..writeByte(1) + ..write(obj.currentPrice) + ..writeByte(2) + ..write(obj.high) + ..writeByte(3) + ..write(obj.low) + ..writeByte(4) + ..write(obj.change) + ..writeByte(5) + ..write(obj.percent) + ..writeByte(6) + ..write(obj.time); + } + + @override + int get hashCode => typeId.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is FinancialItemAdapter && + runtimeType == other.runtimeType && + typeId == other.typeId; +}