import { Module } from "@nestjs/common";
import { UsersModule } from "@bff/modules/users/users.module.js";
import { JoseJwtService } from "../infra/token/jose-jwt.service.js";
import { TokenGeneratorService } from "../infra/token/token-generator.service.js";
import { TokenRefreshService } from "../infra/token/token-refresh.service.js";
import { TokenStorageService } from "../infra/token/token-storage.service.js";
import { TokenRevocationService } from "../infra/token/token-revocation.service.js";
import { TokenBlacklistService } from "../infra/token/token-blacklist.service.js";
import { AuthTokenService } from "../infra/token/token.service.js";
import { PasswordResetTokenService } from "../infra/token/password-reset-token.service.js";

@Module({
  imports: [UsersModule],
  providers: [
    JoseJwtService,
    TokenGeneratorService,
    TokenRefreshService,
    TokenStorageService,
    TokenRevocationService,
    TokenBlacklistService,
    AuthTokenService,
    PasswordResetTokenService,
  ],
  exports: [JoseJwtService, AuthTokenService, TokenBlacklistService, PasswordResetTokenService],
})
export class TokensModule {}
