Создание карточки в коллекции + экран поиска коллекции
This commit is contained in:
70
lib/database/dao/tickets_dao.dart
Normal file
70
lib/database/dao/tickets_dao.dart
Normal file
@@ -0,0 +1,70 @@
|
||||
// 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/create_ticket_dto.dart';
|
||||
import 'package:remever/models/crud_collection_dto.dart';
|
||||
|
||||
part 'tickets_dao.g.dart';
|
||||
|
||||
@DriftAccessor(tables: <Type>[Tickets])
|
||||
class TicketsDao extends DatabaseAccessor<AppDatabase> with _$TicketsDaoMixin {
|
||||
///
|
||||
/// Репозиторий для работы с билетами
|
||||
///
|
||||
TicketsDao(super.attachedDatabase);
|
||||
|
||||
/// Получение билетов из базы данных
|
||||
Stream<List<Ticket>> getTickets(String collectionId) {
|
||||
try {
|
||||
return db.managers.tickets
|
||||
.filter((f) => f.collectionId.id(collectionId))
|
||||
.watch();
|
||||
} catch (e, st) {
|
||||
logger.logError('Ошибка в методе getTickets', e, st);
|
||||
|
||||
throw ('EXEPTION');
|
||||
}
|
||||
}
|
||||
|
||||
/// Удаление билета
|
||||
Future<void> deleteTicket(String id) async {
|
||||
try {
|
||||
await db.managers.tickets.filter((f) => f.id(id)).delete();
|
||||
} catch (e, st) {
|
||||
logger.logError('Ошибка в методе deleteTicket', e, st);
|
||||
}
|
||||
}
|
||||
|
||||
/// Создание билета
|
||||
Future<void> createTicket(CreateTicketDto dto) async {
|
||||
try {
|
||||
final TicketsCompanion companion = TicketsCompanion.insert(
|
||||
question: dto.question!,
|
||||
answer: dto.answer!,
|
||||
collectionId: dto.collection!.id,
|
||||
questionImage: Value<Uint8List?>(dto.questionImage),
|
||||
answerImage: Value<Uint8List?>(dto.answerImage),
|
||||
);
|
||||
|
||||
await db.managers.tickets.create((o) => companion);
|
||||
|
||||
if (dto.needRevert != null && dto.needRevert!) {
|
||||
/// Создаем обратную карточку где ответ == вопрос и вопрос == ответ
|
||||
|
||||
final TicketsCompanion revertCompanion = TicketsCompanion.insert(
|
||||
answer: dto.question!,
|
||||
question: dto.answer!,
|
||||
collectionId: dto.collection!.id,
|
||||
answerImage: Value<Uint8List?>(dto.questionImage),
|
||||
questionImage: Value<Uint8List?>(dto.answerImage),
|
||||
);
|
||||
|
||||
await db.managers.tickets.create((o) => revertCompanion);
|
||||
}
|
||||
} catch (e, st) {
|
||||
logger.logError('Ошибка в методе createTicket', e, st);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user