|
|
29e4bc6650
|
feat(m12): meetings + schedule conflict detection, tests, e2e
- MeetingRepository (CRUD, soft-delete, members, findMeetingsByUserInRange
overlap) + CalendarRepository.findByCreatorInRange + TodoRepository.
findHighPriorityByAssignee
- MeetingService (createMeeting tx+members, meeting_invited notify,
meeting_created activity, SSE meeting.created; updateMeeting/updateMinutes/
deleteMeeting; checkScheduleConflicts = other meetings overlap + calendar
events overlap + high-priority todos due +-3d, time-overlap logic,
excludeMeetingId; conflicts are warnings)
- APIs: meetings list/create/edit + /check conflict check
- Screens: meetings page + MeetingForm(member checkboxes, conflict display)
+ ConflictWarning, ProjectNav link
- Unit tests (MeetingRepository, MeetingService incl. conflict algorithm)
+ e2e meetings
|
2026-06-25 02:19:25 +02:00 |
|
|
|
31d8ad1325
|
feat(m11): calendar + milestones with progress calc, tests, e2e
- CalendarRepository (event CRUD, range query, soft-delete, project isolation)
+ MilestoneRepository (CRUD, findToDosByMilestone) + ScheduleService
(aggregated getCalendarEvents = custom events+milestones+todos in range,
milestone CRUD, milestone_updated activity, progress auto-calc 0-100)
- APIs: calendar events GET/POST/PATCH/DELETE, milestones GET/POST/PATCH +
progress
- Screens: calendar list view + CalendarEventForm, milestones list with
progress bars + MilestoneForm, ProjectNav links
- Unit tests (CalendarRepository, MilestoneRepository, ScheduleService incl.
progress calc 0/33/100) + e2e calendar
|
2026-06-25 02:11:10 +02:00 |
|