/* tslint:disable */
/* eslint-disable */
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import type { TsoaRoute } from '@tsoa/runtime';
import {  fetchMiddlewares, ExpressTemplateService } from '@tsoa/runtime';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { WishlistController } from './../controllers/wishlist';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { WeaponsController } from './../controllers/weapons';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { UsersController } from './../controllers/users';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { SuneateController } from './../controllers/suneate';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { SuitsController } from './../controllers/suits';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { StatusController } from './../controllers/status';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { SourcesController } from './../controllers/sources';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { SodeController } from './../controllers/sode';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { ReportsController } from './../controllers/reports';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { PhotosController } from './../controllers/photos';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { MenpoController } from './../controllers/menpo';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { MakersController } from './../controllers/makers';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { MakersByCategoryController } from './../controllers/makers-by-category';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { LockController } from './../controllers/lock';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { LibraryController } from './../controllers/library';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { KoteController } from './../controllers/kote';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { KabutoController } from './../controllers/kabuto';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { ItemsController } from './../controllers/items';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { ItemSubGroupsController } from './../controllers/item-sub-groups';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { ItemSubCategoriesController } from './../controllers/item-sub-categories';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { ItemSetsController } from './../controllers/item-sets';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { ItemGroupsController } from './../controllers/item-groups';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { ItemCategoriesController } from './../controllers/item-categories';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { ItemBundlesController } from './../controllers/item-bundles';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { ItemBundleController } from './../controllers/item-bundle';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { HaidateController } from './../controllers/haidate';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { FinancialsController } from './../controllers/financials';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { DoController } from './../controllers/do';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { DecorController } from './../controllers/decor';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { DashboardController } from './../controllers/dashboard';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { CoreController } from './../controllers/core';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { ClothingController } from './../controllers/clothing';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { CacheController } from './../controllers/cache';
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
import { ArmorController } from './../controllers/armor-controller';
import type { Request as ExRequest, Response as ExResponse, RequestHandler, Router } from 'express';



// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

const models: TsoaRoute.Models = {
    "LoginRequest": {
        "dataType": "refObject",
        "properties": {
            "userName": {"dataType":"string","required":true},
            "password": {"dataType":"string","required":true},
        },
        "additionalProperties": true,
    },
    // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
    "SourceItem": {
        "dataType": "refObject",
        "properties": {
            "id": {"dataType":"double","required":true},
            "name": {"dataType":"string","required":true},
        },
        "additionalProperties": {"dataType":"any"},
    },
    // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
    "SourceListResponse": {
        "dataType": "refObject",
        "properties": {
            "data": {"dataType":"array","array":{"dataType":"refObject","ref":"SourceItem"},"required":true},
            "total": {"dataType":"double"},
        },
        "additionalProperties": true,
    },
    // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
    "LockRequest": {
        "dataType": "refObject",
        "properties": {
            "table": {"dataType":"string","required":true},
            "col": {"dataType":"string","required":true},
            "value": {"dataType":"any","required":true},
            "key": {"dataType":"string","required":true},
            "id": {"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}],"required":true},
        },
        "additionalProperties": true,
    },
    // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
};
const templateService = new ExpressTemplateService(models, {"noImplicitAdditionalProperties":"ignore","bodyCoercion":true});

// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa




export function RegisterRoutes(app: Router) {

    // ###########################################################################################################
    //  NOTE: If you do not see routes for all of your controllers in this file, then you might not have informed tsoa of where to look
    //      Please look into the "controllerPathGlobs" config option described in the readme: https://github.com/lukeautry/tsoa
    // ###########################################################################################################


    
        const argsWishlistController_getPublic: Record<string, TsoaRoute.ParameterSchema> = {
        };
        app.get('/wishlist/public',
            ...(fetchMiddlewares<RequestHandler>(WishlistController)),
            ...(fetchMiddlewares<RequestHandler>(WishlistController.prototype.getPublic)),

            async function WishlistController_getPublic(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsWishlistController_getPublic, request, response });

                const controller = new WishlistController();

              await templateService.apiHandler({
                methodName: 'getPublic',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsWishlistController_getAuthenticated: Record<string, TsoaRoute.ParameterSchema> = {
        };
        app.get('/wishlist/authenticated',
            ...(fetchMiddlewares<RequestHandler>(WishlistController)),
            ...(fetchMiddlewares<RequestHandler>(WishlistController.prototype.getAuthenticated)),

            async function WishlistController_getAuthenticated(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsWishlistController_getAuthenticated, request, response });

                const controller = new WishlistController();

              await templateService.apiHandler({
                methodName: 'getAuthenticated',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsWishlistController_getOneItem: Record<string, TsoaRoute.ParameterSchema> = {
                path: {"in":"path","name":"path","required":true,"dataType":"string"},
                wishlistID: {"in":"path","name":"wishlistID","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
        };
        app.get('/wishlist/:path/:wishlistID',
            ...(fetchMiddlewares<RequestHandler>(WishlistController)),
            ...(fetchMiddlewares<RequestHandler>(WishlistController.prototype.getOneItem)),

            async function WishlistController_getOneItem(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsWishlistController_getOneItem, request, response });

                const controller = new WishlistController();

              await templateService.apiHandler({
                methodName: 'getOneItem',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsWishlistController_addItem: Record<string, TsoaRoute.ParameterSchema> = {
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.post('/wishlist',
            ...(fetchMiddlewares<RequestHandler>(WishlistController)),
            ...(fetchMiddlewares<RequestHandler>(WishlistController.prototype.addItem)),

            async function WishlistController_addItem(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsWishlistController_addItem, request, response });

                const controller = new WishlistController();

              await templateService.apiHandler({
                methodName: 'addItem',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsWishlistController_updateItem: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.put('/wishlist/:id',
            ...(fetchMiddlewares<RequestHandler>(WishlistController)),
            ...(fetchMiddlewares<RequestHandler>(WishlistController.prototype.updateItem)),

            async function WishlistController_updateItem(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsWishlistController_updateItem, request, response });

                const controller = new WishlistController();

              await templateService.apiHandler({
                methodName: 'updateItem',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsWishlistController_deleteItem: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
        };
        app.delete('/wishlist/:id',
            ...(fetchMiddlewares<RequestHandler>(WishlistController)),
            ...(fetchMiddlewares<RequestHandler>(WishlistController.prototype.deleteItem)),

            async function WishlistController_deleteItem(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsWishlistController_deleteItem, request, response });

                const controller = new WishlistController();

              await templateService.apiHandler({
                methodName: 'deleteItem',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsWeaponsController_getList: Record<string, TsoaRoute.ParameterSchema> = {
                lastVisitDate: {"in":"query","name":"lastVisitDate","dataType":"string"},
        };
        app.get('/weapons',
            ...(fetchMiddlewares<RequestHandler>(WeaponsController)),
            ...(fetchMiddlewares<RequestHandler>(WeaponsController.prototype.getList)),

            async function WeaponsController_getList(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsWeaponsController_getList, request, response });

                const controller = new WeaponsController();

              await templateService.apiHandler({
                methodName: 'getList',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsUsersController_getUser: Record<string, TsoaRoute.ParameterSchema> = {
                body: {"in":"body","name":"body","required":true,"ref":"LoginRequest"},
        };
        app.post('/users',
            ...(fetchMiddlewares<RequestHandler>(UsersController)),
            ...(fetchMiddlewares<RequestHandler>(UsersController.prototype.getUser)),

            async function UsersController_getUser(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsUsersController_getUser, request, response });

                const controller = new UsersController();

              await templateService.apiHandler({
                methodName: 'getUser',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsSuneateController_get: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
        };
        app.get('/items/:id/japanese/armor/suneate',
            ...(fetchMiddlewares<RequestHandler>(SuneateController)),
            ...(fetchMiddlewares<RequestHandler>(SuneateController.prototype.get)),

            async function SuneateController_get(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsSuneateController_get, request, response });

                const controller = new SuneateController();

              await templateService.apiHandler({
                methodName: 'get',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsSuneateController_patch: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.patch('/items/:id/japanese/armor/suneate',
            ...(fetchMiddlewares<RequestHandler>(SuneateController)),
            ...(fetchMiddlewares<RequestHandler>(SuneateController.prototype.patch)),

            async function SuneateController_patch(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsSuneateController_patch, request, response });

                const controller = new SuneateController();

              await templateService.apiHandler({
                methodName: 'patch',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsSuitsController_getList: Record<string, TsoaRoute.ParameterSchema> = {
        };
        app.get('/suits',
            ...(fetchMiddlewares<RequestHandler>(SuitsController)),
            ...(fetchMiddlewares<RequestHandler>(SuitsController.prototype.getList)),

            async function SuitsController_getList(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsSuitsController_getList, request, response });

                const controller = new SuitsController();

              await templateService.apiHandler({
                methodName: 'getList',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsSuitsController_getListItemsOnAnySuit: Record<string, TsoaRoute.ParameterSchema> = {
        };
        app.get('/suits/itemsOnAnySuit',
            ...(fetchMiddlewares<RequestHandler>(SuitsController)),
            ...(fetchMiddlewares<RequestHandler>(SuitsController.prototype.getListItemsOnAnySuit)),

            async function SuitsController_getListItemsOnAnySuit(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsSuitsController_getListItemsOnAnySuit, request, response });

                const controller = new SuitsController();

              await templateService.apiHandler({
                methodName: 'getListItemsOnAnySuit',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsSuitsController_getSuitStyles: Record<string, TsoaRoute.ParameterSchema> = {
        };
        app.get('/suits/styles',
            ...(fetchMiddlewares<RequestHandler>(SuitsController)),
            ...(fetchMiddlewares<RequestHandler>(SuitsController.prototype.getSuitStyles)),

            async function SuitsController_getSuitStyles(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsSuitsController_getSuitStyles, request, response });

                const controller = new SuitsController();

              await templateService.apiHandler({
                methodName: 'getSuitStyles',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsSuitsController_getByID: Record<string, TsoaRoute.ParameterSchema> = {
                fullsuitID: {"in":"path","name":"fullsuitID","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
        };
        app.get('/suits/:fullsuitID',
            ...(fetchMiddlewares<RequestHandler>(SuitsController)),
            ...(fetchMiddlewares<RequestHandler>(SuitsController.prototype.getByID)),

            async function SuitsController_getByID(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsSuitsController_getByID, request, response });

                const controller = new SuitsController();

              await templateService.apiHandler({
                methodName: 'getByID',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsSuitsController_patch: Record<string, TsoaRoute.ParameterSchema> = {
                fullsuitID: {"in":"path","name":"fullsuitID","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.patch('/suits/:fullsuitID',
            ...(fetchMiddlewares<RequestHandler>(SuitsController)),
            ...(fetchMiddlewares<RequestHandler>(SuitsController.prototype.patch)),

            async function SuitsController_patch(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsSuitsController_patch, request, response });

                const controller = new SuitsController();

              await templateService.apiHandler({
                methodName: 'patch',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsSuitsController_getFinancials: Record<string, TsoaRoute.ParameterSchema> = {
                fullsuitID: {"in":"path","name":"fullsuitID","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
        };
        app.get('/suits/:fullsuitID/financials',
            ...(fetchMiddlewares<RequestHandler>(SuitsController)),
            ...(fetchMiddlewares<RequestHandler>(SuitsController.prototype.getFinancials)),

            async function SuitsController_getFinancials(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsSuitsController_getFinancials, request, response });

                const controller = new SuitsController();

              await templateService.apiHandler({
                methodName: 'getFinancials',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsSuitsController_getItems: Record<string, TsoaRoute.ParameterSchema> = {
                fullsuitID: {"in":"path","name":"fullsuitID","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
                itemType: {"in":"query","name":"itemType","dataType":"string"},
        };
        app.get('/suits/:fullsuitID/items',
            ...(fetchMiddlewares<RequestHandler>(SuitsController)),
            ...(fetchMiddlewares<RequestHandler>(SuitsController.prototype.getItems)),

            async function SuitsController_getItems(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsSuitsController_getItems, request, response });

                const controller = new SuitsController();

              await templateService.apiHandler({
                methodName: 'getItems',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsSuitsController_addItem: Record<string, TsoaRoute.ParameterSchema> = {
                fullsuitID: {"in":"path","name":"fullsuitID","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.post('/suits/:fullsuitID/items',
            ...(fetchMiddlewares<RequestHandler>(SuitsController)),
            ...(fetchMiddlewares<RequestHandler>(SuitsController.prototype.addItem)),

            async function SuitsController_addItem(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsSuitsController_addItem, request, response });

                const controller = new SuitsController();

              await templateService.apiHandler({
                methodName: 'addItem',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsSuitsController_deleteItem: Record<string, TsoaRoute.ParameterSchema> = {
                fullsuitID: {"in":"path","name":"fullsuitID","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
                itemID: {"in":"path","name":"itemID","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
        };
        app.delete('/suits/:fullsuitID/items/:itemID',
            ...(fetchMiddlewares<RequestHandler>(SuitsController)),
            ...(fetchMiddlewares<RequestHandler>(SuitsController.prototype.deleteItem)),

            async function SuitsController_deleteItem(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsSuitsController_deleteItem, request, response });

                const controller = new SuitsController();

              await templateService.apiHandler({
                methodName: 'deleteItem',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsSuitsController_patchPhoto: Record<string, TsoaRoute.ParameterSchema> = {
                fullsuitID: {"in":"path","name":"fullsuitID","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.patch('/suits/:fullsuitID/photo',
            ...(fetchMiddlewares<RequestHandler>(SuitsController)),
            ...(fetchMiddlewares<RequestHandler>(SuitsController.prototype.patchPhoto)),

            async function SuitsController_patchPhoto(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsSuitsController_patchPhoto, request, response });

                const controller = new SuitsController();

              await templateService.apiHandler({
                methodName: 'patchPhoto',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsStatusController_getList: Record<string, TsoaRoute.ParameterSchema> = {
                page: {"in":"query","name":"page","dataType":"double"},
        };
        app.get('/status',
            ...(fetchMiddlewares<RequestHandler>(StatusController)),
            ...(fetchMiddlewares<RequestHandler>(StatusController.prototype.getList)),

            async function StatusController_getList(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsStatusController_getList, request, response });

                const controller = new StatusController();

              await templateService.apiHandler({
                methodName: 'getList',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsSourcesController_getList: Record<string, TsoaRoute.ParameterSchema> = {
                page: {"in":"query","name":"page","dataType":"double"},
        };
        app.get('/source',
            ...(fetchMiddlewares<RequestHandler>(SourcesController)),
            ...(fetchMiddlewares<RequestHandler>(SourcesController.prototype.getList)),

            async function SourcesController_getList(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsSourcesController_getList, request, response });

                const controller = new SourcesController();

              await templateService.apiHandler({
                methodName: 'getList',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsSodeController_get: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
        };
        app.get('/items/:id/japanese/armor/sode',
            ...(fetchMiddlewares<RequestHandler>(SodeController)),
            ...(fetchMiddlewares<RequestHandler>(SodeController.prototype.get)),

            async function SodeController_get(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsSodeController_get, request, response });

                const controller = new SodeController();

              await templateService.apiHandler({
                methodName: 'get',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsSodeController_patch: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.patch('/items/:id/japanese/armor/sode',
            ...(fetchMiddlewares<RequestHandler>(SodeController)),
            ...(fetchMiddlewares<RequestHandler>(SodeController.prototype.patch)),

            async function SodeController_patch(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsSodeController_patch, request, response });

                const controller = new SodeController();

              await templateService.apiHandler({
                methodName: 'patch',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsReportsController_getSummary: Record<string, TsoaRoute.ParameterSchema> = {
        };
        app.get('/reports/summary',
            ...(fetchMiddlewares<RequestHandler>(ReportsController)),
            ...(fetchMiddlewares<RequestHandler>(ReportsController.prototype.getSummary)),

            async function ReportsController_getSummary(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsReportsController_getSummary, request, response });

                const controller = new ReportsController();

              await templateService.apiHandler({
                methodName: 'getSummary',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsReportsController_getMakers: Record<string, TsoaRoute.ParameterSchema> = {
        };
        app.get('/reports/makers',
            ...(fetchMiddlewares<RequestHandler>(ReportsController)),
            ...(fetchMiddlewares<RequestHandler>(ReportsController.prototype.getMakers)),

            async function ReportsController_getMakers(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsReportsController_getMakers, request, response });

                const controller = new ReportsController();

              await templateService.apiHandler({
                methodName: 'getMakers',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsPhotosController_uploadPhotos: Record<string, TsoaRoute.ParameterSchema> = {
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.post('/photos',
            ...(fetchMiddlewares<RequestHandler>(PhotosController)),
            ...(fetchMiddlewares<RequestHandler>(PhotosController.prototype.uploadPhotos)),

            async function PhotosController_uploadPhotos(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsPhotosController_uploadPhotos, request, response });

                const controller = new PhotosController();

              await templateService.apiHandler({
                methodName: 'uploadPhotos',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsPhotosController_reorderPhotos: Record<string, TsoaRoute.ParameterSchema> = {
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.put('/photos',
            ...(fetchMiddlewares<RequestHandler>(PhotosController)),
            ...(fetchMiddlewares<RequestHandler>(PhotosController.prototype.reorderPhotos)),

            async function PhotosController_reorderPhotos(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsPhotosController_reorderPhotos, request, response });

                const controller = new PhotosController();

              await templateService.apiHandler({
                methodName: 'reorderPhotos',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsMenpoController_get: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
        };
        app.get('/items/:id/japanese/armor/mempo',
            ...(fetchMiddlewares<RequestHandler>(MenpoController)),
            ...(fetchMiddlewares<RequestHandler>(MenpoController.prototype.get)),

            async function MenpoController_get(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsMenpoController_get, request, response });

                const controller = new MenpoController();

              await templateService.apiHandler({
                methodName: 'get',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsMenpoController_patch: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.patch('/items/:id/japanese/armor/mempo',
            ...(fetchMiddlewares<RequestHandler>(MenpoController)),
            ...(fetchMiddlewares<RequestHandler>(MenpoController.prototype.patch)),

            async function MenpoController_patch(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsMenpoController_patch, request, response });

                const controller = new MenpoController();

              await templateService.apiHandler({
                methodName: 'patch',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsMakersController_getList: Record<string, TsoaRoute.ParameterSchema> = {
                category: {"in":"query","name":"category","dataType":"string"},
        };
        app.get('/maker',
            ...(fetchMiddlewares<RequestHandler>(MakersController)),
            ...(fetchMiddlewares<RequestHandler>(MakersController.prototype.getList)),

            async function MakersController_getList(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsMakersController_getList, request, response });

                const controller = new MakersController();

              await templateService.apiHandler({
                methodName: 'getList',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsMakersByCategoryController_getListByCategory: Record<string, TsoaRoute.ParameterSchema> = {
                page: {"in":"query","name":"page","dataType":"double"},
        };
        app.get('/makersByCategory',
            ...(fetchMiddlewares<RequestHandler>(MakersByCategoryController)),
            ...(fetchMiddlewares<RequestHandler>(MakersByCategoryController.prototype.getListByCategory)),

            async function MakersByCategoryController_getListByCategory(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsMakersByCategoryController_getListByCategory, request, response });

                const controller = new MakersByCategoryController();

              await templateService.apiHandler({
                methodName: 'getListByCategory',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsLockController_patch: Record<string, TsoaRoute.ParameterSchema> = {
                body: {"in":"body","name":"body","required":true,"ref":"LockRequest"},
        };
        app.patch('/lock',
            ...(fetchMiddlewares<RequestHandler>(LockController)),
            ...(fetchMiddlewares<RequestHandler>(LockController.prototype.patch)),

            async function LockController_patch(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsLockController_patch, request, response });

                const controller = new LockController();

              await templateService.apiHandler({
                methodName: 'patch',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsLibraryController_getGroupsList: Record<string, TsoaRoute.ParameterSchema> = {
        };
        app.get('/library/groups',
            ...(fetchMiddlewares<RequestHandler>(LibraryController)),
            ...(fetchMiddlewares<RequestHandler>(LibraryController.prototype.getGroupsList)),

            async function LibraryController_getGroupsList(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsLibraryController_getGroupsList, request, response });

                const controller = new LibraryController();

              await templateService.apiHandler({
                methodName: 'getGroupsList',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsLibraryController_getBooksList: Record<string, TsoaRoute.ParameterSchema> = {
        };
        app.get('/library/books',
            ...(fetchMiddlewares<RequestHandler>(LibraryController)),
            ...(fetchMiddlewares<RequestHandler>(LibraryController.prototype.getBooksList)),

            async function LibraryController_getBooksList(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsLibraryController_getBooksList, request, response });

                const controller = new LibraryController();

              await templateService.apiHandler({
                methodName: 'getBooksList',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsLibraryController_getOne: Record<string, TsoaRoute.ParameterSchema> = {
                libraryBookID: {"in":"path","name":"libraryBookID","required":true,"dataType":"union","subSchemas":[{"dataType":"double"},{"dataType":"string"}]},
        };
        app.get('/library/:libraryBookID',
            ...(fetchMiddlewares<RequestHandler>(LibraryController)),
            ...(fetchMiddlewares<RequestHandler>(LibraryController.prototype.getOne)),

            async function LibraryController_getOne(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsLibraryController_getOne, request, response });

                const controller = new LibraryController();

              await templateService.apiHandler({
                methodName: 'getOne',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsLibraryController_addNewBook: Record<string, TsoaRoute.ParameterSchema> = {
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.post('/library',
            ...(fetchMiddlewares<RequestHandler>(LibraryController)),
            ...(fetchMiddlewares<RequestHandler>(LibraryController.prototype.addNewBook)),

            async function LibraryController_addNewBook(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsLibraryController_addNewBook, request, response });

                const controller = new LibraryController();

              await templateService.apiHandler({
                methodName: 'addNewBook',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsLibraryController_updateLibraryBook: Record<string, TsoaRoute.ParameterSchema> = {
                libraryBookID: {"in":"path","name":"libraryBookID","required":true,"dataType":"union","subSchemas":[{"dataType":"double"},{"dataType":"string"}]},
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.put('/library/:libraryBookID',
            ...(fetchMiddlewares<RequestHandler>(LibraryController)),
            ...(fetchMiddlewares<RequestHandler>(LibraryController.prototype.updateLibraryBook)),

            async function LibraryController_updateLibraryBook(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsLibraryController_updateLibraryBook, request, response });

                const controller = new LibraryController();

              await templateService.apiHandler({
                methodName: 'updateLibraryBook',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsLibraryController_deleteLibraryBook: Record<string, TsoaRoute.ParameterSchema> = {
                libraryBookID: {"in":"path","name":"libraryBookID","required":true,"dataType":"union","subSchemas":[{"dataType":"double"},{"dataType":"string"}]},
        };
        app.delete('/library/:libraryBookID',
            ...(fetchMiddlewares<RequestHandler>(LibraryController)),
            ...(fetchMiddlewares<RequestHandler>(LibraryController.prototype.deleteLibraryBook)),

            async function LibraryController_deleteLibraryBook(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsLibraryController_deleteLibraryBook, request, response });

                const controller = new LibraryController();

              await templateService.apiHandler({
                methodName: 'deleteLibraryBook',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsKoteController_get: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
        };
        app.get('/items/:id/japanese/armor/kote',
            ...(fetchMiddlewares<RequestHandler>(KoteController)),
            ...(fetchMiddlewares<RequestHandler>(KoteController.prototype.get)),

            async function KoteController_get(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsKoteController_get, request, response });

                const controller = new KoteController();

              await templateService.apiHandler({
                methodName: 'get',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsKoteController_patch: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.patch('/items/:id/japanese/armor/kote',
            ...(fetchMiddlewares<RequestHandler>(KoteController)),
            ...(fetchMiddlewares<RequestHandler>(KoteController.prototype.patch)),

            async function KoteController_patch(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsKoteController_patch, request, response });

                const controller = new KoteController();

              await templateService.apiHandler({
                methodName: 'patch',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsKabutoController_get: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
        };
        app.get('/items/:id/japanese/armor/kabuto',
            ...(fetchMiddlewares<RequestHandler>(KabutoController)),
            ...(fetchMiddlewares<RequestHandler>(KabutoController.prototype.get)),

            async function KabutoController_get(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsKabutoController_get, request, response });

                const controller = new KabutoController();

              await templateService.apiHandler({
                methodName: 'get',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsKabutoController_patch: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.patch('/items/:id/japanese/armor/kabuto',
            ...(fetchMiddlewares<RequestHandler>(KabutoController)),
            ...(fetchMiddlewares<RequestHandler>(KabutoController.prototype.patch)),

            async function KabutoController_patch(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsKabutoController_patch, request, response });

                const controller = new KabutoController();

              await templateService.apiHandler({
                methodName: 'patch',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemsController_getThumbnails: Record<string, TsoaRoute.ParameterSchema> = {
        };
        app.get('/items/thumbnails',
            ...(fetchMiddlewares<RequestHandler>(ItemsController)),
            ...(fetchMiddlewares<RequestHandler>(ItemsController.prototype.getThumbnails)),

            async function ItemsController_getThumbnails(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemsController_getThumbnails, request, response });

                const controller = new ItemsController();

              await templateService.apiHandler({
                methodName: 'getThumbnails',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemsController_getList: Record<string, TsoaRoute.ParameterSchema> = {
        };
        app.get('/items',
            ...(fetchMiddlewares<RequestHandler>(ItemsController)),
            ...(fetchMiddlewares<RequestHandler>(ItemsController.prototype.getList)),

            async function ItemsController_getList(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemsController_getList, request, response });

                const controller = new ItemsController();

              await templateService.apiHandler({
                methodName: 'getList',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemsController_createItem: Record<string, TsoaRoute.ParameterSchema> = {
                itemCategoryID: {"in":"query","name":"itemCategoryID","dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
        };
        app.post('/items',
            ...(fetchMiddlewares<RequestHandler>(ItemsController)),
            ...(fetchMiddlewares<RequestHandler>(ItemsController.prototype.createItem)),

            async function ItemsController_createItem(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemsController_createItem, request, response });

                const controller = new ItemsController();

              await templateService.apiHandler({
                methodName: 'createItem',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemsController_updateItem: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.put('/items/:id',
            ...(fetchMiddlewares<RequestHandler>(ItemsController)),
            ...(fetchMiddlewares<RequestHandler>(ItemsController.prototype.updateItem)),

            async function ItemsController_updateItem(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemsController_updateItem, request, response });

                const controller = new ItemsController();

              await templateService.apiHandler({
                methodName: 'updateItem',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemsController_patchItem: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.patch('/items/:id',
            ...(fetchMiddlewares<RequestHandler>(ItemsController)),
            ...(fetchMiddlewares<RequestHandler>(ItemsController.prototype.patchItem)),

            async function ItemsController_patchItem(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemsController_patchItem, request, response });

                const controller = new ItemsController();

              await templateService.apiHandler({
                methodName: 'patchItem',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemsController_getGeneral: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
        };
        app.get('/items/:id/general',
            ...(fetchMiddlewares<RequestHandler>(ItemsController)),
            ...(fetchMiddlewares<RequestHandler>(ItemsController.prototype.getGeneral)),

            async function ItemsController_getGeneral(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemsController_getGeneral, request, response });

                const controller = new ItemsController();

              await templateService.apiHandler({
                methodName: 'getGeneral',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemsController_getPhotos: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
        };
        app.get('/items/:id/photos',
            ...(fetchMiddlewares<RequestHandler>(ItemsController)),
            ...(fetchMiddlewares<RequestHandler>(ItemsController.prototype.getPhotos)),

            async function ItemsController_getPhotos(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemsController_getPhotos, request, response });

                const controller = new ItemsController();

              await templateService.apiHandler({
                methodName: 'getPhotos',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemSubGroupsController_getList: Record<string, TsoaRoute.ParameterSchema> = {
                page: {"in":"query","name":"page","dataType":"double"},
        };
        app.get('/itemSubGroups',
            ...(fetchMiddlewares<RequestHandler>(ItemSubGroupsController)),
            ...(fetchMiddlewares<RequestHandler>(ItemSubGroupsController.prototype.getList)),

            async function ItemSubGroupsController_getList(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemSubGroupsController_getList, request, response });

                const controller = new ItemSubGroupsController();

              await templateService.apiHandler({
                methodName: 'getList',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemSubGroupsController_createSubGroup: Record<string, TsoaRoute.ParameterSchema> = {
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.post('/itemSubGroups',
            ...(fetchMiddlewares<RequestHandler>(ItemSubGroupsController)),
            ...(fetchMiddlewares<RequestHandler>(ItemSubGroupsController.prototype.createSubGroup)),

            async function ItemSubGroupsController_createSubGroup(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemSubGroupsController_createSubGroup, request, response });

                const controller = new ItemSubGroupsController();

              await templateService.apiHandler({
                methodName: 'createSubGroup',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemSubGroupsController_updateSubGroup: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.put('/itemSubGroups/:id',
            ...(fetchMiddlewares<RequestHandler>(ItemSubGroupsController)),
            ...(fetchMiddlewares<RequestHandler>(ItemSubGroupsController.prototype.updateSubGroup)),

            async function ItemSubGroupsController_updateSubGroup(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemSubGroupsController_updateSubGroup, request, response });

                const controller = new ItemSubGroupsController();

              await templateService.apiHandler({
                methodName: 'updateSubGroup',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemSubGroupsController_deleteSubGroup: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
        };
        app.delete('/itemSubGroups/:id',
            ...(fetchMiddlewares<RequestHandler>(ItemSubGroupsController)),
            ...(fetchMiddlewares<RequestHandler>(ItemSubGroupsController.prototype.deleteSubGroup)),

            async function ItemSubGroupsController_deleteSubGroup(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemSubGroupsController_deleteSubGroup, request, response });

                const controller = new ItemSubGroupsController();

              await templateService.apiHandler({
                methodName: 'deleteSubGroup',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemSubCategoriesController_getList: Record<string, TsoaRoute.ParameterSchema> = {
                filter: {"in":"query","name":"filter","dataType":"string"},
        };
        app.get('/itemSubCategories',
            ...(fetchMiddlewares<RequestHandler>(ItemSubCategoriesController)),
            ...(fetchMiddlewares<RequestHandler>(ItemSubCategoriesController.prototype.getList)),

            async function ItemSubCategoriesController_getList(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemSubCategoriesController_getList, request, response });

                const controller = new ItemSubCategoriesController();

              await templateService.apiHandler({
                methodName: 'getList',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemSubCategoriesController_createSubCategory: Record<string, TsoaRoute.ParameterSchema> = {
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.post('/itemSubCategories',
            ...(fetchMiddlewares<RequestHandler>(ItemSubCategoriesController)),
            ...(fetchMiddlewares<RequestHandler>(ItemSubCategoriesController.prototype.createSubCategory)),

            async function ItemSubCategoriesController_createSubCategory(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemSubCategoriesController_createSubCategory, request, response });

                const controller = new ItemSubCategoriesController();

              await templateService.apiHandler({
                methodName: 'createSubCategory',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemSubCategoriesController_updateSubCategory: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.put('/itemSubCategories/:id',
            ...(fetchMiddlewares<RequestHandler>(ItemSubCategoriesController)),
            ...(fetchMiddlewares<RequestHandler>(ItemSubCategoriesController.prototype.updateSubCategory)),

            async function ItemSubCategoriesController_updateSubCategory(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemSubCategoriesController_updateSubCategory, request, response });

                const controller = new ItemSubCategoriesController();

              await templateService.apiHandler({
                methodName: 'updateSubCategory',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemSubCategoriesController_deleteSubCategory: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
        };
        app.delete('/itemSubCategories/:id',
            ...(fetchMiddlewares<RequestHandler>(ItemSubCategoriesController)),
            ...(fetchMiddlewares<RequestHandler>(ItemSubCategoriesController.prototype.deleteSubCategory)),

            async function ItemSubCategoriesController_deleteSubCategory(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemSubCategoriesController_deleteSubCategory, request, response });

                const controller = new ItemSubCategoriesController();

              await templateService.apiHandler({
                methodName: 'deleteSubCategory',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemSetsController_getList: Record<string, TsoaRoute.ParameterSchema> = {
                category: {"in":"query","name":"category","dataType":"string"},
        };
        app.get('/itemSets',
            ...(fetchMiddlewares<RequestHandler>(ItemSetsController)),
            ...(fetchMiddlewares<RequestHandler>(ItemSetsController.prototype.getList)),

            async function ItemSetsController_getList(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemSetsController_getList, request, response });

                const controller = new ItemSetsController();

              await templateService.apiHandler({
                methodName: 'getList',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemSetsController_getOne: Record<string, TsoaRoute.ParameterSchema> = {
                itemSetID: {"in":"path","name":"itemSetID","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
        };
        app.get('/itemSets/:itemSetID',
            ...(fetchMiddlewares<RequestHandler>(ItemSetsController)),
            ...(fetchMiddlewares<RequestHandler>(ItemSetsController.prototype.getOne)),

            async function ItemSetsController_getOne(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemSetsController_getOne, request, response });

                const controller = new ItemSetsController();

              await templateService.apiHandler({
                methodName: 'getOne',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemSetsController_getItems: Record<string, TsoaRoute.ParameterSchema> = {
                itemSetID: {"in":"path","name":"itemSetID","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
        };
        app.get('/itemSets/:itemSetID/items',
            ...(fetchMiddlewares<RequestHandler>(ItemSetsController)),
            ...(fetchMiddlewares<RequestHandler>(ItemSetsController.prototype.getItems)),

            async function ItemSetsController_getItems(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemSetsController_getItems, request, response });

                const controller = new ItemSetsController();

              await templateService.apiHandler({
                methodName: 'getItems',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemGroupsController_getList: Record<string, TsoaRoute.ParameterSchema> = {
                filter: {"in":"query","name":"filter","dataType":"string"},
        };
        app.get('/itemGroups',
            ...(fetchMiddlewares<RequestHandler>(ItemGroupsController)),
            ...(fetchMiddlewares<RequestHandler>(ItemGroupsController.prototype.getList)),

            async function ItemGroupsController_getList(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemGroupsController_getList, request, response });

                const controller = new ItemGroupsController();

              await templateService.apiHandler({
                methodName: 'getList',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemCategoriesController_getList: Record<string, TsoaRoute.ParameterSchema> = {
                category: {"in":"query","name":"category","dataType":"string"},
        };
        app.get('/itemCategories',
            ...(fetchMiddlewares<RequestHandler>(ItemCategoriesController)),
            ...(fetchMiddlewares<RequestHandler>(ItemCategoriesController.prototype.getList)),

            async function ItemCategoriesController_getList(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemCategoriesController_getList, request, response });

                const controller = new ItemCategoriesController();

              await templateService.apiHandler({
                methodName: 'getList',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemBundlesController_getList: Record<string, TsoaRoute.ParameterSchema> = {
        };
        app.get('/itemBundles',
            ...(fetchMiddlewares<RequestHandler>(ItemBundlesController)),
            ...(fetchMiddlewares<RequestHandler>(ItemBundlesController.prototype.getList)),

            async function ItemBundlesController_getList(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemBundlesController_getList, request, response });

                const controller = new ItemBundlesController();

              await templateService.apiHandler({
                methodName: 'getList',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemBundlesController_addItemToBundle: Record<string, TsoaRoute.ParameterSchema> = {
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.post('/itemBundles/addItem',
            ...(fetchMiddlewares<RequestHandler>(ItemBundlesController)),
            ...(fetchMiddlewares<RequestHandler>(ItemBundlesController.prototype.addItemToBundle)),

            async function ItemBundlesController_addItemToBundle(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemBundlesController_addItemToBundle, request, response });

                const controller = new ItemBundlesController();

              await templateService.apiHandler({
                methodName: 'addItemToBundle',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemBundlesController_create: Record<string, TsoaRoute.ParameterSchema> = {
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.post('/itemBundles',
            ...(fetchMiddlewares<RequestHandler>(ItemBundlesController)),
            ...(fetchMiddlewares<RequestHandler>(ItemBundlesController.prototype.create)),

            async function ItemBundlesController_create(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemBundlesController_create, request, response });

                const controller = new ItemBundlesController();

              await templateService.apiHandler({
                methodName: 'create',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemBundlesController_patch: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.patch('/itemBundles/:id',
            ...(fetchMiddlewares<RequestHandler>(ItemBundlesController)),
            ...(fetchMiddlewares<RequestHandler>(ItemBundlesController.prototype.patch)),

            async function ItemBundlesController_patch(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemBundlesController_patch, request, response });

                const controller = new ItemBundlesController();

              await templateService.apiHandler({
                methodName: 'patch',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemBundleController_getBlank: Record<string, TsoaRoute.ParameterSchema> = {
        };
        app.get('/itemBundle/blank',
            ...(fetchMiddlewares<RequestHandler>(ItemBundleController)),
            ...(fetchMiddlewares<RequestHandler>(ItemBundleController.prototype.getBlank)),

            async function ItemBundleController_getBlank(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemBundleController_getBlank, request, response });

                const controller = new ItemBundleController();

              await templateService.apiHandler({
                methodName: 'getBlank',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemBundleController_get: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
        };
        app.get('/itemBundle/:id',
            ...(fetchMiddlewares<RequestHandler>(ItemBundleController)),
            ...(fetchMiddlewares<RequestHandler>(ItemBundleController.prototype.get)),

            async function ItemBundleController_get(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemBundleController_get, request, response });

                const controller = new ItemBundleController();

              await templateService.apiHandler({
                methodName: 'get',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemBundleController_create: Record<string, TsoaRoute.ParameterSchema> = {
        };
        app.post('/itemBundle',
            ...(fetchMiddlewares<RequestHandler>(ItemBundleController)),
            ...(fetchMiddlewares<RequestHandler>(ItemBundleController.prototype.create)),

            async function ItemBundleController_create(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemBundleController_create, request, response });

                const controller = new ItemBundleController();

              await templateService.apiHandler({
                methodName: 'create',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsItemBundleController_patch: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.patch('/itemBundle/:id',
            ...(fetchMiddlewares<RequestHandler>(ItemBundleController)),
            ...(fetchMiddlewares<RequestHandler>(ItemBundleController.prototype.patch)),

            async function ItemBundleController_patch(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsItemBundleController_patch, request, response });

                const controller = new ItemBundleController();

              await templateService.apiHandler({
                methodName: 'patch',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsHaidateController_get: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
        };
        app.get('/items/:id/japanese/armor/haidate',
            ...(fetchMiddlewares<RequestHandler>(HaidateController)),
            ...(fetchMiddlewares<RequestHandler>(HaidateController.prototype.get)),

            async function HaidateController_get(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsHaidateController_get, request, response });

                const controller = new HaidateController();

              await templateService.apiHandler({
                methodName: 'get',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsHaidateController_patch: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.patch('/items/:id/japanese/armor/haidate',
            ...(fetchMiddlewares<RequestHandler>(HaidateController)),
            ...(fetchMiddlewares<RequestHandler>(HaidateController.prototype.patch)),

            async function HaidateController_patch(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsHaidateController_patch, request, response });

                const controller = new HaidateController();

              await templateService.apiHandler({
                methodName: 'patch',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsFinancialsController_getSummary: Record<string, TsoaRoute.ParameterSchema> = {
        };
        app.get('/financials/summary',
            ...(fetchMiddlewares<RequestHandler>(FinancialsController)),
            ...(fetchMiddlewares<RequestHandler>(FinancialsController.prototype.getSummary)),

            async function FinancialsController_getSummary(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsFinancialsController_getSummary, request, response });

                const controller = new FinancialsController();

              await templateService.apiHandler({
                methodName: 'getSummary',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsFinancialsController_getDetails: Record<string, TsoaRoute.ParameterSchema> = {
        };
        app.get('/financials/details',
            ...(fetchMiddlewares<RequestHandler>(FinancialsController)),
            ...(fetchMiddlewares<RequestHandler>(FinancialsController.prototype.getDetails)),

            async function FinancialsController_getDetails(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsFinancialsController_getDetails, request, response });

                const controller = new FinancialsController();

              await templateService.apiHandler({
                methodName: 'getDetails',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsDoController_get: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
        };
        app.get('/items/:id/japanese/armor/do',
            ...(fetchMiddlewares<RequestHandler>(DoController)),
            ...(fetchMiddlewares<RequestHandler>(DoController.prototype.get)),

            async function DoController_get(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsDoController_get, request, response });

                const controller = new DoController();

              await templateService.apiHandler({
                methodName: 'get',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsDoController_patch: Record<string, TsoaRoute.ParameterSchema> = {
                id: {"in":"path","name":"id","required":true,"dataType":"union","subSchemas":[{"dataType":"string"},{"dataType":"double"}]},
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.patch('/items/:id/japanese/armor/do',
            ...(fetchMiddlewares<RequestHandler>(DoController)),
            ...(fetchMiddlewares<RequestHandler>(DoController.prototype.patch)),

            async function DoController_patch(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsDoController_patch, request, response });

                const controller = new DoController();

              await templateService.apiHandler({
                methodName: 'patch',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsDecorController_getList: Record<string, TsoaRoute.ParameterSchema> = {
                lastVisitDate: {"in":"query","name":"lastVisitDate","dataType":"string"},
        };
        app.get('/decor',
            ...(fetchMiddlewares<RequestHandler>(DecorController)),
            ...(fetchMiddlewares<RequestHandler>(DecorController.prototype.getList)),

            async function DecorController_getList(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsDecorController_getList, request, response });

                const controller = new DecorController();

              await templateService.apiHandler({
                methodName: 'getList',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsDashboardController_getDashboard: Record<string, TsoaRoute.ParameterSchema> = {
        };
        app.get('/dashboard',
            ...(fetchMiddlewares<RequestHandler>(DashboardController)),
            ...(fetchMiddlewares<RequestHandler>(DashboardController.prototype.getDashboard)),

            async function DashboardController_getDashboard(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsDashboardController_getDashboard, request, response });

                const controller = new DashboardController();

              await templateService.apiHandler({
                methodName: 'getDashboard',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsCoreController_patch: Record<string, TsoaRoute.ParameterSchema> = {
                body: {"in":"body","name":"body","required":true,"dataType":"any"},
        };
        app.patch('/core',
            ...(fetchMiddlewares<RequestHandler>(CoreController)),
            ...(fetchMiddlewares<RequestHandler>(CoreController.prototype.patch)),

            async function CoreController_patch(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsCoreController_patch, request, response });

                const controller = new CoreController();

              await templateService.apiHandler({
                methodName: 'patch',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsClothingController_getList: Record<string, TsoaRoute.ParameterSchema> = {
                lastVisitDate: {"in":"query","name":"lastVisitDate","dataType":"string"},
        };
        app.get('/clothing',
            ...(fetchMiddlewares<RequestHandler>(ClothingController)),
            ...(fetchMiddlewares<RequestHandler>(ClothingController.prototype.getList)),

            async function ClothingController_getList(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsClothingController_getList, request, response });

                const controller = new ClothingController();

              await templateService.apiHandler({
                methodName: 'getList',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsCacheController_clearCache: Record<string, TsoaRoute.ParameterSchema> = {
        };
        app.post('/clearCache',
            ...(fetchMiddlewares<RequestHandler>(CacheController)),
            ...(fetchMiddlewares<RequestHandler>(CacheController.prototype.clearCache)),

            async function CacheController_clearCache(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsCacheController_clearCache, request, response });

                const controller = new CacheController();

              await templateService.apiHandler({
                methodName: 'clearCache',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
        const argsArmorController_getList: Record<string, TsoaRoute.ParameterSchema> = {
                lastVisitDate: {"in":"query","name":"lastVisitDate","dataType":"string"},
        };
        app.get('/armor',
            ...(fetchMiddlewares<RequestHandler>(ArmorController)),
            ...(fetchMiddlewares<RequestHandler>(ArmorController.prototype.getList)),

            async function ArmorController_getList(request: ExRequest, response: ExResponse, next: any) {

            // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

            let validatedArgs: any[] = [];
            try {
                validatedArgs = templateService.getValidatedArgs({ args: argsArmorController_getList, request, response });

                const controller = new ArmorController();

              await templateService.apiHandler({
                methodName: 'getList',
                controller,
                response,
                next,
                validatedArgs,
                successStatus: undefined,
              });
            } catch (err) {
                return next(err);
            }
        });
        // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa

    // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa


    // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
}

// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
