import { Action } from '@ngrx/store'; import { Zone, Host, Port, Service, DiscoverZone as MDDiscoverZone, DiscoverHost as MDDiscoverHost, DiscoverPort as MDDiscoverPort, DiscoverService as MDiscoverService, } from '@overflow/commons-typescript/model/discovery'; export enum ActionType { DiscoverZone = '[discovery.discovery] discoverZone', DiscoverHost = '[discovery.discovery] discoverHost', DiscoverPort = '[discovery.discovery] discoverPort', DiscoverService = '[discovery.discovery] discoverService', DiscoveryStart = '[discovery.discovery] DiscoveryService.discoveryStart', DiscoveryStop = '[discovery.discovery] DiscoveryService.discoveryStop', DiscoveredZone = '[discovery.discovery] DiscoveryService.discoveredZone', DiscoveredHost = '[discovery.discovery] DiscoveryService.discoveredHost', DiscoveredPort = '[discovery.discovery] DiscoveryService.discoveredPort', DiscoveredService = '[discovery.discovery] DiscoveryService.discoveredService', } export class DiscoverZone implements Action { readonly type = ActionType.DiscoverZone; constructor(public payload: {probeID: string, discoverZone: MDDiscoverZone}) {} } export class DiscoverHost implements Action { readonly type = ActionType.DiscoverHost; constructor(public payload: {probeID: string, zone: Zone, discoverHost: MDDiscoverHost}) {} } export class DiscoverPort implements Action { readonly type = ActionType.DiscoverPort; constructor(public payload: {probeID: string, host: Host, discoverPort: MDDiscoverPort}) {} } export class DiscoverService implements Action { readonly type = ActionType.DiscoverService; constructor(public payload: {probeID: string, port: Port, discoverService: MDiscoverService}) {} } export class DiscoveryStart implements Action { readonly type = ActionType.DiscoveryStart; constructor(public payload: Date) {} } export class DiscoveryStop implements Action { readonly type = ActionType.DiscoveryStop; constructor(public payload: Date) {} } export class DiscoveredZone implements Action { readonly type = ActionType.DiscoveredZone; constructor(public payload: Zone) {} } export class DiscoveredHost implements Action { readonly type = ActionType.DiscoveredHost; constructor(public payload: Host) {} } export class DiscoveredPort implements Action { readonly type = ActionType.DiscoveredPort; constructor(public payload: Port) {} } export class DiscoveredService implements Action { readonly type = ActionType.DiscoveredService; constructor(public payload: Service) {} } export type Actions = | DiscoverZone | DiscoverHost | DiscoverPort | DiscoverService | DiscoveryStart | DiscoveryStop | DiscoveredZone | DiscoveredHost | DiscoveredPort | DiscoveredService ;