class AccountController {

    @Path("/currency-count")
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @Operation(
        summary = "Get the number of currencies issued by a given account.",
        description = "Return the number of currencies issued by a given account and height.",
        tags = {"accounts"},
        responses = {
            @ApiResponse(responseCode = "200", description = "Successful execution",
                content = @Content(mediaType = "application/json",
                    schema = @Schema(implementation = AccountCurrencyCountResponse.class)))
        })
    @PermitAll
    public Response getAccountCurrencyCount(
        @Parameter(description = "The account ID.", required = true, schema = @Schema(implementation = String.class))
        @QueryParam("account") @NotNull AccountIdParameter accountIdParameter,
        @Parameter(description = "The height of the blockchain to determine the currency count (optional, default is last block).")
        @QueryParam("height") @DefaultValue("-1") @ValidBlockchainHeight int height
    ) {

        ResponseBuilder response = ResponseBuilder.startTiming();
        long accountId = accountIdParameter.get();

        Integer count = accountCurrencyService.getCountByAccount(accountId, height);

        return response.bind(new AccountCurrencyCountResponse(count)).build();
    }

    @Inject public  AccountController(Blockchain blockchain,
                             Account2FAHelper account2FAHelper,
                             AccountService accountService,
                             AccountPublicKeyService accountPublicKeyService,
                             AccountAssetService accountAssetService,
                             AccountCurrencyService accountCurrencyService,
                             AccountAssetConverter accountAssetConverter,
                             AccountCurrencyConverter accountCurrencyConverter,
                             AccountConverter converter,
                             BlockConverter blockConverter,
                             WalletKeysConverter walletKeysConverter,
                             Account2FADetailsConverter faDetailsConverter,
                             Account2FAConverter faConverter,
                             @AskOrderService OrderService<AskOrder, ColoredCoinsAskOrderPlacement> orderService,
                             FirstLastIndexParser indexParser,
                             AccountStatisticsService accountStatisticsService);

}