import 'package:social_app/core/api/i_api_client.dart'; import '../calendar_api.dart'; import '../models/schedule_item_model.dart'; class CalendarService { final IApiClient _apiClient; CalendarApi? _calendarApi; CalendarService({required IApiClient apiClient}) : _apiClient = apiClient; CalendarApi get _api { final api = _calendarApi; if (api != null) { return api; } final created = CalendarApi(_apiClient); _calendarApi = created; return created; } Future> getEventsForDay(DateTime date) async { final start = DateTime(date.year, date.month, date.day); final end = DateTime(date.year, date.month, date.day, 23, 59, 59); return getEventsForRange(start, end); } Future> getEventsForRange( DateTime start, DateTime end, ) async { return _api.listByRange(startAt: start, endAt: end); } Future getEventById(String id) async { return _api.getById(id); } Future addEvent(ScheduleItemModel event) async { return _api.create(event); } Future updateEvent(ScheduleItemModel event) async { return _api.update(event); } Future archiveEvent(String id) async { final event = await getEventById(id); if (event == null) { return null; } return updateEvent(event.copyWith(status: ScheduleStatus.archived)); } Future deleteEvent(String id) async { await _api.delete(id); } }