feat: managing returns

This commit is contained in:
alzalia1 2025-08-18 18:20:33 +02:00
parent ca1eeafd8f
commit 6947bcfb01
11 changed files with 521 additions and 22 deletions

View file

@ -0,0 +1,20 @@
import 'package:seshat/domain/models/book.dart';
import 'package:seshat/domain/models/return_owner.dart';
class Accounting {
Accounting(this.owners, this.books);
List<ReturnOwner> owners;
Map<String, Book> books;
factory Accounting.fromJSON(Map<String, dynamic> json) {
final ownersJson = json["owners"] as List<dynamic>;
List<ReturnOwner> owners = ownersJson
.map((el) => ReturnOwner.fromJSON(el))
.toList();
final booksJson = json["book_map"] as Map<String, dynamic>;
Map<String, Book> books = {};
booksJson.forEach((k, v) => books[k] = Book.fromJSON(v));
return Accounting(owners, books);
}
}

View file

@ -0,0 +1,28 @@
class BalStats {
BalStats(
this.totalOwnedCollectedMoney,
this.totalDifferentOwners,
this.totalCollectedMoney,
this.balId,
this.totalSoldBooks,
this.totalOwnedSoldBooks,
);
int balId;
double totalCollectedMoney;
double totalOwnedCollectedMoney;
int totalDifferentOwners;
int totalSoldBooks;
int totalOwnedSoldBooks;
factory BalStats.fromJSON(Map<String, dynamic> json) {
return BalStats(
json["total_owned_collected_money"],
json["total_different_owners"],
json["total_collected_money"],
json["bal_id"],
json["total_sold_books"],
json["total_owned_sold_books"],
);
}
}

View file

@ -0,0 +1 @@
enum ReturnType { books, money, all }

View file

@ -1,11 +1,22 @@
import 'package:seshat/domain/models/book_instance.dart';
import 'package:seshat/domain/models/owner.dart';
import 'package:seshat/domain/models/search_result.dart';
class ReturnOwner {
ReturnOwner(this.owner, this.owned, this.ownedMoney);
Owner owner;
List<BookInstance> owned;
double ownedMoney;
ReturnOwner(this.ownerId, this.owedInstances, this.owedMoney);
int ownerId;
Owner? owner;
List<BookInstance> owedInstances;
List<SearchResult> owed = [];
double owedMoney;
// factory ReturnOwner.fromJSON(Map<String, dynamic>) {}
factory ReturnOwner.fromJSON(Map<String, dynamic> json) {
int owner = json["owner_id"];
double owedMoney = json["owed_money"];
final owedJson = json["owed_books"] as List<dynamic>;
List<BookInstance> owed = owedJson
.map((el) => BookInstance.fromJSON(el))
.toList();
return ReturnOwner(owner, owed, owedMoney);
}
}