Создание карточки в коллекции + экран поиска коллекции

This commit is contained in:
2025-04-02 21:40:31 +03:00
parent fb7ff84087
commit 17dff72655
36 changed files with 2495 additions and 277 deletions

View File

@@ -1,16 +1,16 @@
import 'package:remever/database/database.dart';
import 'package:remever/models/collection_dto.dart';
import 'package:remever/models/crud_collection_dto.dart';
///
/// Интерфейс взаимодействия с коллекциями
///
abstract interface class CollectionsInterface {
/// Получение списка коллекций
Stream<List<Collection>> watchCollectionsList();
Stream<List<Collection>> watchCollectionsList({String? search});
/// Создание новой коллекции
Future<void> createCollection(CollectionDto dto);
Future<void> updateCollection(CollectionDto dto, String id);
Future<void> createCollection(CrudCollectionDto dto);
Future<void> updateCollection(CrudCollectionDto dto, String id);
Future<void> deleteCollection(String id);
/// Сделать коллекцию публичной

View File

@@ -1,7 +1,7 @@
import 'package:injectable/injectable.dart';
import 'package:remever/database/database.dart';
import 'package:remever/inject.dart';
import 'package:remever/models/collection_dto.dart';
import 'package:remever/models/crud_collection_dto.dart';
import 'package:remever/services/collection/collections_interface.dart';
///
@@ -11,17 +11,17 @@ import 'package:remever/services/collection/collections_interface.dart';
@Singleton(as: CollectionsInterface)
final class CollectionsService implements CollectionsInterface {
@override
Stream<List<Collection>> watchCollectionsList() {
return getIt<AppDatabase>().collectionsDao.getCollections();
Stream<List<Collection>> watchCollectionsList({String? search}) {
return getIt<AppDatabase>().collectionsDao.getCollections(search);
}
@override
Future<void> createCollection(CollectionDto dto) async {
Future<void> createCollection(CrudCollectionDto dto) async {
return await getIt<AppDatabase>().collectionsDao.createCollection(dto);
}
@override
Future<void> updateCollection(CollectionDto dto, String id) async {
Future<void> updateCollection(CrudCollectionDto dto, String id) async {
return await getIt<AppDatabase>().collectionsDao.updateCollection(dto, id);
}

View File

@@ -1,9 +1,13 @@
import 'package:remever/database/database.dart';
import 'package:remever/models/create_ticket_dto.dart';
///
/// Интерфейс взаимодействия с билетами в коллекция
///
abstract interface class TicketsInterface {
/// Получение списка билетов
Stream<List<Collection>> watchTicketsList();
Stream<List<Ticket>> watchTicketsList(String collectionId);
/// Создание нового билета
Future<void> createTicket(CreateTicketDto dto);
}

View File

@@ -1,5 +1,7 @@
import 'package:injectable/injectable.dart';
import 'package:remever/database/database.dart';
import 'package:remever/inject.dart';
import 'package:remever/models/create_ticket_dto.dart';
import 'package:remever/services/tickets/tickets_interface.dart';
///
@@ -9,7 +11,12 @@ import 'package:remever/services/tickets/tickets_interface.dart';
@Singleton(as: TicketsInterface)
final class TicketsService implements TicketsInterface {
@override
Stream<List<Collection>> watchTicketsList() {
return Stream.empty();
Stream<List<Ticket>> watchTicketsList(String collectionId) {
return getIt<AppDatabase>().ticketsDao.getTickets(collectionId);
}
@override
Future<void> createTicket(CreateTicketDto dto) async {
return await getIt<AppDatabase>().ticketsDao.createTicket(dto);
}
}