Why Database Abstraction is Better

### Current Problems:
1. **Tight Coupling**: Auth services are hardcoded to `PgPool`
2. **Limited Flexibility**: Can't easily switch databases
3. **Maintenance Burden**: Database-specific code scattered throughout
4. **Testing Complexity**: Hard to test with different databases
5. **Vendor Lock-in**: Forced to use PostgreSQL for auth features

### Benefits of Database Abstraction:
1. **Loose Coupling**: Services depend on traits, not concrete types
2. **Database Flexibility**: Easy to switch between SQLite, PostgreSQL, MySQL, etc.
3. **Better Testing**: Can use in-memory databases for tests
4. **Cleaner Code**: Single interface for all database operations
5. **Future-proofing**: Easy to add new database backends
