Commit Graph

10 Commits

Author SHA1 Message Date
7101f38bc8 feat: implement client targets v2 (weekly/monthly periods, working days, pro-ration)
- Add PeriodType enum and working_days column to ClientTarget schema
- Rename weekly_hours -> target_hours; remove Monday-only constraint
- Add migration 20260224000000_client_targets_v2
- Rewrite computeBalance() to support weekly/monthly periods, per-spec
  pro-ration for first period, ongoing vs completed period logic, and
  elapsed working-day counting (§4–§6 of requirements doc)
- Update Zod schemas and TypeScript input types for new fields
- Frontend: replace WeekBalance with PeriodBalance; update
  ClientTargetWithBalance to currentPeriod* fields
- ClientTargetPanel: period type radio, working-day toggles, free date
  picker, dynamic hours label
- DashboardPage: rename widget to Targets, dynamic This week/This month
  label
2026-02-24 19:02:32 +01:00
simon.franken
685a311001 Add break time feature to time entries
- Add breakMinutes field to TimeEntry model and database migration
- Users can now add break duration (minutes) to time entries
- Break time is subtracted from total tracked duration
- Validation ensures break time cannot exceed total entry duration
- Statistics and client target balance calculations account for breaks
- Frontend UI includes break time input in TimeEntryFormModal
- Duration displays show break time deduction (e.g., '7h (−1h break)')
- Both project/client statistics and weekly balance calculations updated
2026-02-23 14:39:30 +01:00
simon.franken
f5c0a0b2f7 improvements 2026-02-18 15:26:36 +01:00
simon.franken
4cce62934e adds targets 2026-02-18 14:27:44 +01:00
simon.franken
a352318e8a adapts time format 2026-02-18 12:43:17 +01:00
simon.franken
f77e94f7b7 update time visualization 2026-02-18 10:53:15 +01:00
simon.franken
6a6a3ba00b refactoring 2026-02-18 10:26:15 +01:00
c516a097a3 small adaptions 2026-02-16 19:28:23 +01:00
simon.franken
d3b8df3deb fix 2026-02-16 11:01:07 +01:00
simon.franken
7d678c1c4d creates application 2026-02-16 10:15:27 +01:00