import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ClientsRoutingModule } from './clients-routing.module';
import { ObjectsViewModule } from '@objects-view/objects-view.module';
import { ErrorHandlingModule } from '@shared/error-handling/error-handling.module';
import { FleioDataControlsModule } from '@shared/fleio-data-controls/fleio-data-controls.module';
import { UiModule } from '@shared/ui/ui.module';
import { ClientEditComponent } from './client-edit/client-edit.component';
import { ClientCreateComponent } from './client-create/client-create.component';
import { ClientDetailsComponent } from './client-details/client-details.component';
import { ClientListComponent } from './client-list/client-list.component';
import { CommonTabsModule } from '@shared/common-tabs/common-tabs.module';
import { ClientDetailsBillingComponent } from './tabs/client-details-billing/client-details-billing.component';
import { ClientDetailsTicketsComponent } from './tabs/client-details-tickets/client-details-tickets.component';
import {
  ClientDetailsCloudResourcesComponent
} from './tabs/client-details-cloud-resources/client-details-cloud-resources.component';
import { ClientDetailsDomainsComponent } from './tabs/client-details-domains/client-details-domains.component';
import { ClientDetailsUsersComponent } from './tabs/client-details-users/client-details-users.component';
import { ClientDetailsServicesComponent } from './tabs/client-details-services/client-details-services.component';
import { ClientDetailsOverviewComponent } from './tabs/client-details-overview/client-details-overview.component';
import {
  ClientDetailsOpenstackServiceComponent
} from './tabs/client-details-openstack-service/client-details-openstack-service.component';
import { ClientDetailsJournalComponent } from './tabs/client-details-journal/client-details-journal.component';
import { ClientDetailsInvoicesComponent } from './tabs/client-details-invoices/client-details-invoices.component';
import {
  CreateOpenstackServiceDialogComponent
} from './tabs/client-details-openstack-service/dialogs/create-openstack-service-dialog/create-openstack-service-dialog.component';
import {
  ChangePricingPlanDialogComponent
} from './tabs/client-details-openstack-service/dialogs/change-pricing-plan-dialog/change-pricing-plan-dialog.component';
import { PluginsModule } from '@shared/plugins/plugins.module';
import { ChangeCreditDialogComponent } from './dialogs/change-credit-dialog/change-credit-dialog.component';
import { CommonDialogsModule } from '@shared/common-dialogs/common-dialogs.module';
import {
  ChangeConfigurationDialogComponent
} from './dialogs/change-configuration-dialog/change-configuration-dialog.component';
import { InvoicesModule } from '../../billing/invoices/invoices.module';
import { ClientDetailsReferralComponent } from './tabs/client-details-referral/client-details-referral.component';


@NgModule({
  declarations: [
    ClientListComponent,
    ClientDetailsComponent,
    ClientEditComponent,
    ClientCreateComponent,
    ClientDetailsBillingComponent,
    ClientDetailsTicketsComponent,
    ClientDetailsCloudResourcesComponent,
    ClientDetailsDomainsComponent,
    ClientDetailsUsersComponent,
    ClientDetailsServicesComponent,
    ClientDetailsOverviewComponent,
    ClientDetailsOpenstackServiceComponent,
    ClientDetailsJournalComponent,
    ClientDetailsInvoicesComponent,
    CreateOpenstackServiceDialogComponent,
    ChangePricingPlanDialogComponent,
    ChangeCreditDialogComponent,
    ChangeConfigurationDialogComponent,
    ClientDetailsReferralComponent,
  ],
  imports: [
    CommonModule,
    ClientsRoutingModule,
    ObjectsViewModule,
    ErrorHandlingModule,
    FleioDataControlsModule,
    UiModule,
    CommonTabsModule,
    PluginsModule,
    CommonDialogsModule,
    InvoicesModule,
  ]
})
export class ClientsModule {
}
