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> getAll() async { final rows = await _dao.getAllPlans(); return rows.map(TrainingPlanMapper.toEntity).toList(); } @override Future getById(String id) async { final row = await _dao.getPlanById(id); return TrainingPlanMapper.toEntity(row); } @override Future create(String name) async { final String id = IdGenerator.generate(); await _dao.insertPlan(TrainingPlanMapper.toInsertCompanion(id, name)); return getById(id); } @override Future update(TrainingPlanEntity plan) async { await _dao.updatePlan(plan.id, TrainingPlanMapper.toUpdateCompanion(plan)); } @override Future delete(String id) async { await _dao.deletePlan(id); } }