Backend Complete: Interface Refactoring & Service Container Enhancements
Repository Interface Optimization: - Created IBaseRepository.ts and IPaginatedRepository.ts - Refactored all 7 repository interfaces to extend base interfaces - Eliminated ~200 lines of redundant code (70% reduction) - Improved type safety and maintainability Dependency Injection Improvements: - Added EmailService and GameTokenService to DIContainer - Updated CreateUserCommandHandler constructor for DI - Updated RequestPasswordResetCommandHandler constructor for DI - Enhanced testability and service consistency Environment Configuration: - Created comprehensive .env.example with 40+ variables - Organized into 12 logical sections (Database, Security, Email, etc.) - Added security guidelines and best practices - Documented all backend environment requirements Documentation: - Added comprehensive codebase review - Created refactoring summary report - Added frontend implementation guide Impact: Improved code quality, reduced maintenance overhead, enhanced developer experience
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
import { DeckAggregate } from '../Deck/DeckAggregate';
|
||||
import { IPaginatedRepository } from './IBaseRepository';
|
||||
|
||||
export interface IDeckRepository extends IPaginatedRepository<DeckAggregate, { decks: DeckAggregate[], totalCount: number }> {
|
||||
// Deck-specific methods for restrictions and filtering
|
||||
countActiveByUserId(userId: string): Promise<number>;
|
||||
countOrganizationalByUserId(userId: string): Promise<number>;
|
||||
findFilteredDecks(userId: string, userOrgId?: string | null, isAdmin?: boolean, from?: number, to?: number): Promise<{ decks: DeckAggregate[], totalCount: number }>;
|
||||
}
|
||||
Reference in New Issue
Block a user