diff --git a/src/auth/auth.service.ts b/src/auth/auth.service.ts index 7df0cb8..3039cec 100644 --- a/src/auth/auth.service.ts +++ b/src/auth/auth.service.ts @@ -1205,6 +1205,10 @@ export class AuthService { }); } + /** + * Generate a new API key value with 'pc_' prefix and 24 random characters. + * Format: pc_<24-char-random-hex> + */ private generateApiKeyValue() { return `pc_${randomToken(24)}`; } diff --git a/src/auth/guards/rate-limit.guard.ts b/src/auth/guards/rate-limit.guard.ts index ce5d740..5a16725 100644 --- a/src/auth/guards/rate-limit.guard.ts +++ b/src/auth/guards/rate-limit.guard.ts @@ -53,6 +53,8 @@ export class RateLimitGuard implements CanActivate { try { // Check by user if authenticated + // Tier defaults to 'free' as it is not included in the current JWT payload. + // When 'tier' is added to JwtPayload, this logic will use the actual value. if (request.user?.id) { const userTier = request.user.tier || 'free'; const userStatus = await this.rateLimitService.checkUserRateLimit( diff --git a/src/common/common.types.ts b/src/common/common.types.ts index 65fba43..55f4008 100644 --- a/src/common/common.types.ts +++ b/src/common/common.types.ts @@ -8,6 +8,11 @@ import { TransactionStatus, DocumentType, VerificationStatus, + FraudSeverity, + FraudStatus, + FraudPattern, + DisputeStatus, + MilestoneStatus, } from '@prisma/client'; registerEnumType(UserRole, { name: 'UserRole' }); @@ -16,6 +21,11 @@ registerEnumType(TransactionType, { name: 'TransactionType' }); registerEnumType(TransactionStatus, { name: 'TransactionStatus' }); registerEnumType(DocumentType, { name: 'DocumentType' }); registerEnumType(VerificationStatus, { name: 'VerificationStatus' }); +registerEnumType(FraudSeverity, { name: 'FraudSeverity' }); +registerEnumType(FraudStatus, { name: 'FraudStatus' }); +registerEnumType(FraudPattern, { name: 'FraudPattern' }); +registerEnumType(DisputeStatus, { name: 'DisputeStatus' }); +registerEnumType(MilestoneStatus, { name: 'MilestoneStatus' }); export { UserRole, @@ -24,4 +34,9 @@ export { TransactionStatus, DocumentType, VerificationStatus, + FraudSeverity, + FraudStatus, + FraudPattern, + DisputeStatus, + MilestoneStatus, };