import {
  IamAccountHandlers,
  IamAccountModel,
  IamAccountServices,
  IamSequelizeAccountRepository,
} from './account';
import {
  IamBoundedContextHandlers,
  IamBoundedContextModel,
  IamBoundedContextServices,
  IamSequelizeBoundedContextRepository,
} from './bounded-context';
import {
  IamPermissionHandlers,
  IamPermissionModel,
  IamPermissionServices,
  IamSequelizePermissionRepository,
} from './permission';
import {
  IamPermissionRoleHandlers,
  IamPermissionRoleModel,
  IamPermissionRoleServices,
  IamSequelizePermissionRoleRepository,
} from './permission-role';
import { IamRoleHandlers, IamRoleModel, IamRoleServices, IamSequelizeRoleRepository } from './role';
import {
  IamRoleAccountHandlers,
  IamRoleAccountModel,
  IamRoleAccountServices,
  IamSequelizeRoleAccountRepository,
} from './role-account';
import { IamSequelizeTagRepository, IamTagHandlers, IamTagModel, IamTagServices } from './tag';
import {
  IamSequelizeTenantRepository,
  IamTenantHandlers,
  IamTenantModel,
  IamTenantServices,
} from './tenant';
import {
  IamSequelizeTenantAccountRepository,
  IamTenantAccountHandlers,
  IamTenantAccountModel,
  IamTenantAccountServices,
} from './tenant-account';
import { IamSequelizeUserRepository, IamUserHandlers, IamUserModel, IamUserServices } from './user';

/**
 * @aurora-catalyst-generated
 * @source cliter/iam
 */
export const IamHandlers = [
  ...IamTagHandlers,
  ...IamBoundedContextHandlers,
  ...IamPermissionHandlers,
  ...IamPermissionRoleHandlers,
  ...IamRoleHandlers,
  ...IamRoleAccountHandlers,
  ...IamAccountHandlers,
  ...IamTenantAccountHandlers,
  ...IamTenantHandlers,
  ...IamUserHandlers,
];
export const IamServices = [
  ...IamTagServices,
  ...IamBoundedContextServices,
  ...IamPermissionServices,
  ...IamPermissionRoleServices,
  ...IamRoleServices,
  ...IamRoleAccountServices,
  ...IamAccountServices,
  ...IamTenantAccountServices,
  ...IamTenantServices,
  ...IamUserServices,
];
export const IamModels = [
  IamTagModel,
  IamBoundedContextModel,
  IamPermissionModel,
  IamPermissionRoleModel,
  IamRoleModel,
  IamRoleAccountModel,
  IamAccountModel,
  IamTenantAccountModel,
  IamTenantModel,
  IamUserModel,
];
export const IamRepositories = [
  IamSequelizeTagRepository,
  IamSequelizeBoundedContextRepository,
  IamSequelizePermissionRepository,
  IamSequelizePermissionRoleRepository,
  IamSequelizeRoleRepository,
  IamSequelizeRoleAccountRepository,
  IamSequelizeAccountRepository,
  IamSequelizeTenantAccountRepository,
  IamSequelizeTenantRepository,
  IamSequelizeUserRepository,
];
