- fix: The AccessTTL and RefreshTTL fields in JWTConfig now use
time.Duration type directly instead of string with ParseDuration
methods. The config validation now checks for positive durations
rather than parsing strings.
- Add GORM dependencies for SQLite and PostgreSQL
- Create domain models (User, Session, File) with common errors
- Implement repository interfaces and database layer with migrations
- Update WebApp to bootstrap with database and repositories
- Add comprehensive unit tests for repository methods
- Update config structure to support multiple database drivers
- Extend AGENTS.md with debugging principles and dependency rules
- The mapstructure library is no longer needed for direct duration
parsing since we now store TTLs as string durations (e.g., "15m",
"168h") and parse them on demand via helper methods.
- This allows more flexible duration formats in configuration and moves
the parsing responsibility to the JWT config struct itself.