feat: 增强日历功能并集成 AgentScope 代理服务

This commit is contained in:
qzl
2026-03-11 15:28:29 +08:00
parent e55e445906
commit e20e7d2a02
85 changed files with 5175 additions and 885 deletions
@@ -1,4 +1,6 @@
import 'package:social_app/core/api/i_api_client.dart';
import '../calendar_api.dart';
import '../models/schedule_item_model.dart';
class MockCalendarService {
@@ -58,47 +60,70 @@ class MockCalendarService {
class CalendarService {
final IApiClient? _apiClient;
final MockCalendarService _mock = MockCalendarService();
CalendarApi? _calendarApi;
CalendarService({IApiClient? apiClient}) : _apiClient = apiClient;
List<ScheduleItemModel> getEventsForDay(DateTime date) {
if (_apiClient != null) {
throw UnimplementedError('Real API not implemented');
CalendarApi get _api {
final api = _calendarApi;
if (api != null) {
return api;
}
return _mock.getEventsForDay(date);
final client = _apiClient;
if (client == null) {
throw StateError('Real API client not configured');
}
final created = CalendarApi(client);
_calendarApi = created;
return created;
}
List<ScheduleItemModel> getEventsForRange(DateTime start, DateTime end) {
Future<List<ScheduleItemModel>> getEventsForDay(DateTime date) async {
if (_apiClient == null) {
return _mock.getEventsForDay(date);
}
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<List<ScheduleItemModel>> getEventsForRange(
DateTime start,
DateTime end,
) async {
if (_apiClient != null) {
throw UnimplementedError('Real API not implemented');
return _api.listByRange(startAt: start, endAt: end);
}
return _mock.getEventsForRange(start, end);
}
ScheduleItemModel? getEventById(String id) {
Future<ScheduleItemModel?> getEventById(String id) async {
if (_apiClient != null) {
throw UnimplementedError('Real API not implemented');
return _api.getById(id);
}
return _mock.getEventById(id);
}
void addEvent(ScheduleItemModel event) {
Future<ScheduleItemModel> addEvent(ScheduleItemModel event) async {
if (_apiClient != null) {
throw UnimplementedError('Real API not implemented');
return _api.create(event);
}
_mock.addEvent(event);
return event;
}
void updateEvent(ScheduleItemModel event) {
Future<ScheduleItemModel> updateEvent(ScheduleItemModel event) async {
if (_apiClient != null) {
throw UnimplementedError('Real API not implemented');
return _api.update(event);
}
_mock.updateEvent(event);
return event;
}
void deleteEvent(String id) {
Future<void> deleteEvent(String id) async {
if (_apiClient != null) {
throw UnimplementedError('Real API not implemented');
await _api.delete(id);
return;
}
_mock.deleteEvent(id);
}