41 lines
1.3 KiB
Dart
41 lines
1.3 KiB
Dart
import 'package:trainhub_flutter/core/utils/id_generator.dart';
|
|
import 'package:trainhub_flutter/data/database/daos/training_plan_dao.dart';
|
|
import 'package:trainhub_flutter/data/mappers/training_plan_mapper.dart';
|
|
import 'package:trainhub_flutter/domain/entities/training_plan.dart';
|
|
import 'package:trainhub_flutter/domain/repositories/training_plan_repository.dart';
|
|
|
|
class TrainingPlanRepositoryImpl implements TrainingPlanRepository {
|
|
final TrainingPlanDao _dao;
|
|
|
|
TrainingPlanRepositoryImpl(this._dao);
|
|
|
|
@override
|
|
Future<List<TrainingPlanEntity>> getAll() async {
|
|
final rows = await _dao.getAllPlans();
|
|
return rows.map(TrainingPlanMapper.toEntity).toList();
|
|
}
|
|
|
|
@override
|
|
Future<TrainingPlanEntity> getById(String id) async {
|
|
final row = await _dao.getPlanById(id);
|
|
return TrainingPlanMapper.toEntity(row);
|
|
}
|
|
|
|
@override
|
|
Future<TrainingPlanEntity> create(String name) async {
|
|
final String id = IdGenerator.generate();
|
|
await _dao.insertPlan(TrainingPlanMapper.toInsertCompanion(id, name));
|
|
return getById(id);
|
|
}
|
|
|
|
@override
|
|
Future<void> update(TrainingPlanEntity plan) async {
|
|
await _dao.updatePlan(plan.id, TrainingPlanMapper.toUpdateCompanion(plan));
|
|
}
|
|
|
|
@override
|
|
Future<void> delete(String id) async {
|
|
await _dao.deletePlan(id);
|
|
}
|
|
}
|