Adds a unique constraint to the database schema for time entries, preventing duplicates for the same month and collaborator. Also updates the API to check for existing entries before creation and unifies the collaborator name used in the dialog. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 55837015-10e9-4be9-b857-7f5e6be73772 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 30c6f661-5ee7-47bf-80d3-9d74ec4d729b Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1cc377db-7ea0-49f2-97ce-c3e87e0228cc/55837015-10e9-4be9-b857-7f5e6be73772/NRBGdxQ Replit-Helium-Checkpoint-Created: true
Description
Self-hosted timesheet (CRA) manager - Docker stack
Languages
TypeScript
96.5%
CSS
1.7%
HTML
0.8%
JavaScript
0.6%
Dockerfile
0.4%