import {
	AssetModel,
	AlarmModel,
	AlarmScopeModel,
	EventModel,
	ResponsiblePersonModel,
	AreaModel,
	ZoneModel,
	CameraModel,
	AlarmScopeStatus,
} from "@/contracts/client.schemas";

import { Steps } from "../model/Steps";

export type AlarmScopeWithAsset = {
	scope: AlarmScopeModel;
	asset: AssetModel;
	alarmsCount: number;
};

export type AlarmDialogContextType = {
	asset: AssetModel;

	alarms: AlarmModel[];

	scope: AlarmScopeModel;
	scopeStatus: AlarmScopeStatus;

	step: Steps;
	next: (isReal?: boolean) => Promise<void>;

	events: EventModel[];

	responsiblePersons: ResponsiblePersonModel[];

	areas: AreaModel[];

	zones: ZoneModel[];

	cameras: CameraModel[];

	responsibleComment: string;
	setResponsibleComment: (comment: string) => void;

	// Для переключения между объектами
	allScopes: AlarmScopeWithAsset[];
	switchToScope: (scopeId: string) => void;
};
