Currently, the frontend uses generic interfaces that don't fully represent the backend data structures. We need to:
- Create proper TypeScript interfaces that accurately reflect backend models
- Centralize these interfaces in a dedicated location for frontend reuse
- Replace all existing generic interfaces with the new properly-typed ones