// Package imports: import 'package:drift/drift.dart'; import 'package:remever/common/functions.dart'; import 'package:remever/database/database.dart'; import 'package:remever/database/tables.dart'; import 'package:remever/models/collection_dto.dart'; part 'collections_dao.g.dart'; @DriftAccessor(tables: [Collections]) class CollectionsDao extends DatabaseAccessor with _$CollectionsDaoMixin { /// /// Репозиторий для работы с коллекциями /// CollectionsDao(super.attachedDatabase); /// Получение коллекций из базы данных Stream> getCollections() { try { return db.managers.collections.watch(); } catch (e, st) { logger.logError('Ошибка в методе getCollections', e, st); throw ('EXEPTION'); } } /// Создание коллекции Future createCollection(CollectionDto dto) async { try { await db.managers.collections.create( (o) => o( title: dto.title, desc: dto.desc, isPublic: Value(dto.isPublic), image: Value(dto.avatar), ), ); } catch (e, st) { logger.logError('Ошибка в методе createCollection', e, st); } } /// Обновление коллекции Future updateCollection(CollectionDto dto, String id) async { try { await db.managers.collections .filter((f) => f.id(id)) .update( (o) => o( title: Value(dto.title), desc: Value(dto.desc), isPublic: Value(dto.isPublic), image: Value(dto.avatar), ), ); } catch (e, st) { logger.logError('Ошибка в методе updateCollection', e, st); } } /// Удаление коллекции Future deleteCollection(String id) async { try { await db.managers.collections.filter((f) => f.id(id)).delete(); } catch (e, st) { logger.logError('Ошибка в методе deleteCollection', e, st); } } }