import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ServiceDetailsComponent } from './service-details/service-details.component';
import { ServiceEditComponent } from './service-edit/service-edit.component';
import { ServiceListComponent } from './service-list/service-list.component';
import { ServicesRoutingModule } from './services-routing.module';
import { ErrorHandlingModule } from '@shared/error-handling/error-handling.module';
import { ObjectsViewModule } from '@objects-view/objects-view.module';
import { ServiceListUIService } from './service-list-ui.service';
import { ServiceChangeComponent } from './service-change/service-change.component';
import { CommonComponentsModule } from '@shared/common-components/common-components.module';
import { ServiceDetailsCyclesComponent } from './tabs/service-details-cycles/service-details-cycles.component';
import { UiModule } from '@shared/ui/ui.module';
import { ServiceEditFormComponent } from './tabs/service-edit-form/service-edit-form.component';
import { FleioDataControlsModule } from '@shared/fleio-data-controls/fleio-data-controls.module';
import { ServiceEnableBillingComponent } from './dialogs/service-enable-billing/service-enable-billing.component';
import { ServiceChangeProjectComponent } from './dialogs/service-change-project/service-change-project.component';
import {
  ServiceConfigurableOptionEditDialogComponent
} from './dialogs/service-configurable-option-edit-dialog/service-configurable-option-edit-dialog.component';
import { CommonDialogsModule } from '@shared/common-dialogs/common-dialogs.module';

@NgModule({
  declarations: [
    ServiceDetailsComponent,
    ServiceEditComponent,
    ServiceListComponent,
    ServiceChangeComponent,
    ServiceDetailsCyclesComponent,
    ServiceEditFormComponent,
    ServiceEnableBillingComponent,
    ServiceChangeProjectComponent,
    ServiceConfigurableOptionEditDialogComponent,
  ],
  imports: [
    CommonModule,
    ServicesRoutingModule,
    ErrorHandlingModule,
    ObjectsViewModule,
    CommonComponentsModule,
    UiModule,
    FleioDataControlsModule,
    CommonDialogsModule,
  ],
  providers: [
    {
      provide: ServiceListUIService,
      useClass: ServiceListUIService,
      multi: false,
    },
  ]
})
export class ServicesModule {
}
