- 홈 화면에 웹과 동일한 framer-motion 스타일 애니메이션 적용 - 멤버 화면 카드 스와이프 디자인으로 재구현 - 인스타그램 딥링크 지원 (url_launcher, AndroidManifest queries) - flutter_svg 추가로 SVG 아이콘 동적 strokeWidth 지원 - 바텀 네비게이션 아이콘 strokeWidth 웹과 동일하게 조정 - 멤버 화면 툴바 그림자 제거 및 인디케이터 그림자 최적화 - 탭 전환 시 애니메이션 재생 기능 추가 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
33 lines
1,008 B
Dart
33 lines
1,008 B
Dart
/// 일정 API 서비스
|
|
library;
|
|
|
|
import 'package:intl/intl.dart';
|
|
import '../models/schedule.dart';
|
|
import 'api_client.dart';
|
|
|
|
/// 오늘 날짜 (KST) 반환
|
|
String getTodayKST() {
|
|
final now = DateTime.now();
|
|
return DateFormat('yyyy-MM-dd').format(now);
|
|
}
|
|
|
|
/// 일정 목록 조회 (월별)
|
|
Future<List<Schedule>> getSchedules(int year, int month) async {
|
|
final response = await dio.get('/schedules', queryParameters: {
|
|
'year': year.toString(),
|
|
'month': month.toString(),
|
|
});
|
|
final List<dynamic> data = response.data;
|
|
return data.map((json) => Schedule.fromJson(json)).toList();
|
|
}
|
|
|
|
/// 다가오는 일정 N개 조회 (오늘 이후) - 웹과 동일
|
|
Future<List<Schedule>> getUpcomingSchedules(int limit) async {
|
|
final todayStr = getTodayKST();
|
|
final response = await dio.get('/schedules', queryParameters: {
|
|
'startDate': todayStr,
|
|
'limit': limit.toString(),
|
|
});
|
|
final List<dynamic> data = response.data;
|
|
return data.map((json) => Schedule.fromJson(json)).toList();
|
|
}
|