/**
 * Generated by orval v7.10.0 🍺
 * Do not edit manually.
 * Monitoring | v1
 * OpenAPI spec version: 1.0.0
 */
export interface AccessModel {
  id: string;
  memberId: string;
  username: string;
  assetGroupId: string;
  assetGroupName: string;
}

export interface AlarmFireDepartmentDispatchModel {
  id: string;
  alarmId: string;
  senderId: string;
  sentAt: string;
  departmentId: string;
  dispatcherName: string;
  comment: string;
}

export interface AlarmModel {
  id: string;
  event: EventModel;
  zoneId: string;
  isReal: boolean;
  scopeId: string;
}

export interface AlarmScopeModel {
  id: string;
  assetId: string;
  result: AlarmScopeResult;
  statusHistory: AlarmScopeStatusChangingModel[];
}

export type AlarmScopeResult = typeof AlarmScopeResult[keyof typeof AlarmScopeResult];


// eslint-disable-next-line @typescript-eslint/no-redeclare
export const AlarmScopeResult = {
  Unknown: 'Unknown',
  False: 'False',
  Real: 'Real',
} as const;

export type AlarmScopeStatus = typeof AlarmScopeStatus[keyof typeof AlarmScopeStatus];


// eslint-disable-next-line @typescript-eslint/no-redeclare
export const AlarmScopeStatus = {
  Unknown: 'Unknown',
  New: 'New',
  Accepted: 'Accepted',
  CamerasViewed: 'CamerasViewed',
  CallsCompleted: 'CallsCompleted',
  CommentAndSend: 'CommentAndSend',
  Resolved: 'Resolved',
} as const;

export interface AlarmScopeStatusChangingModel {
  id: string;
  alarmScopeId: string;
  /** @nullable */
  userId: string | null;
  changedAt: string;
  status: AlarmScopeStatus;
}

export interface AreaModel {
  id: string;
  index: number;
  name: string;
  description: string;
  assetId: string;
  hasAlarms: boolean;
  hasFaults: boolean;
}

export interface AssetGroupModel {
  id: string;
  name: string;
  organizationId: string;
  /** @nullable */
  parentId: string | null;
  hasPBX: boolean;
}

export interface AssetModel {
  id: string;
  name: string;
  description: string;
  comment: string;
  organizationId: string;
  groupIds: string[];
  /** @nullable */
  latitude: number | null;
  /** @nullable */
  longitude: number | null;
  country: string;
  region: string;
  city: string;
  street: string;
  house: string;
  building: string;
  apartment: string;
  gateCode: string;
  intercomCode: string;
  ownerName: string;
  ownerPassword: string;
  ownerPhone1: string;
  ownerPhone2: string;
  identificationPassword: string;
  duressPassword: string;
  /** @nullable */
  serviceOrganizationId: string | null;
  /** @nullable */
  serviceOrganizationName: string | null;
  isOnline: boolean;
  rowVersion: string;
  /** @nullable */
  imei: string | null;
  /** @nullable */
  lastStatusChange: string | null;
}

/**
 * @nullable
 */
export type AutoAssetCreating = {
  assetName: string;
} | null;

export interface CallModel {
  id: string;
  alarmId: string;
  callerId: string;
  startedAt: string;
  responsiblePersonId: string;
  isConfirmedRealAlarm: boolean;
  result: CallResult;
  commentary: string;
}

export type CallResult = typeof CallResult[keyof typeof CallResult];


// eslint-disable-next-line @typescript-eslint/no-redeclare
export const CallResult = {
  Unknown: 'Unknown',
  Answered: 'Answered',
  NoAnswer: 'NoAnswer',
  Busy: 'Busy',
} as const;

export interface CameraModel {
  id: string;
  name: string;
  address: string;
  assetId: string;
}

export interface CameraViewModel {
  id: string;
  userId: string;
  cameraId: string;
  alarmId: string;
  dateTime: string;
  startVideo: string;
  endVideo: string;
}

export interface CheckListItemModel {
  id: string;
  templateItemId: string;
  isChecked: boolean;
}

export interface CheckListModel {
  id: string;
  templateId: string;
  alarmId: string;
  items: CheckListItemModel[];
}

export interface CheckListTemplateItemModel {
  id: string;
  index: number;
  translations: CheckListTemplateItemTranslationModel[];
}

export interface CheckListTemplateItemTranslationModel {
  id: string;
  languageCode: string;
  name: string;
  description: string;
}

export interface CheckListTemplateModel {
  id: string;
  type: CheckListType;
  items: CheckListTemplateItemModel[];
}

export type CheckListType = typeof CheckListType[keyof typeof CheckListType];


// eslint-disable-next-line @typescript-eslint/no-redeclare
export const CheckListType = {
  Unknown: 'Unknown',
  ByRealAlarm: 'ByRealAlarm',
  ByFalseAlarm: 'ByFalseAlarm',
} as const;

export interface CountOfEventsItemResponseModel {
  count: number;
  name: string;
}

export interface CountOfEventsResponseModel {
  events: CountOfEventsItemResponseModel[];
  alarms: CountOfEventsItemResponseModel[];
  faults: CountOfEventsItemResponseModel[];
  operatorActions: CountOfEventsItemResponseModel[];
}

export type CountOfEventsType = typeof CountOfEventsType[keyof typeof CountOfEventsType];


// eslint-disable-next-line @typescript-eslint/no-redeclare
export const CountOfEventsType = {
  AllTime: 'AllTime',
  Day: 'Day',
  Week: 'Week',
  Month: 'Month',
  Year: 'Year',
} as const;

export interface CreateAreaRequest {
  assetId: string;
  index: number;
  name: string;
  description: string;
}

export interface CreateAssetRequest {
  organizationId: string;
  groupIds: string[];
  name: string;
  description: string;
  comment: string;
  /** @nullable */
  latitude: number | null;
  /** @nullable */
  longitude: number | null;
  country: string;
  region: string;
  city: string;
  street: string;
  house: string;
  building: string;
  apartment: string;
  gateCode: string;
  intercomCode: string;
  ownerName: string;
  ownerPassword: string;
  ownerPhone1: string;
  ownerPhone2: string;
  identificationPassword: string;
  duressPassword: string;
  /** @nullable */
  serviceOrganizationId: string | null;
  /** @nullable */
  imei: string | null;
}

export interface CreateCallRequest {
  alarmScopeId: string;
  responsiblePersonId: string;
  commentary: string;
  isConfirmedRealAlarm: boolean;
  result: CallResult;
}

export interface CreateCameraRequest {
  assetId: string;
  name: string;
  address: string;
}

export interface CreateCameraViewRequest {
  cameraId: string;
  alarmId: string;
  dateTime: string;
  startVideo: string;
  endVideo: string;
}

export interface CreateCheckListRequest {
  templateId: string;
  alarmScopeId: string;
}

export interface CreateCheckListTemplateRequest {
  type: CheckListType;
  items: CheckListTemplateItemModel[];
}

export interface CreateDemoEventRequest {
  assetGroupId: string;
  assetId: string;
}

export interface CreateDispatchRequest {
  alarmId: string;
  departmentId: string;
  dispatcherName: string;
  comment: string;
}

export interface CreateEventRequest {
  token: string;
  assetId: string;
  code: number;
  areaIndex: number;
  zoneIndex: number;
  /** @nullable */
  createdAt: string | null;
  autoAssetCreating: AutoAssetCreating;
}

export interface CreateExportRequest {
  fileType: FileType;
  language: string;
  reportId: string;
  timeZone: string;
}

export interface CreateFireDepartmentAccessRequest {
  departmentId: string;
  userId: string;
}

export interface CreateFireDepartmentRequest {
  name: string;
  address: string;
}

export interface CreateLockedEventCodeRequest {
  assetId: string;
  eventCodeId: string;
}

export interface CreateLogRequest {
  assetId: string;
  message: string;
}

export interface CreateOrganizationRequest {
  name: string;
  description: string;
}

export interface CreatePhotoRequest {
  assetId: string;
  name: string;
  description: string;
  base64: string;
}

export interface CreateReportRequest {
  assetIdList: string[];
  type: ReportType;
  /** @nullable */
  extra: string | null;
  timeZone: string;
}

export interface CreateReportResponse {
  id: string;
  name: string;
  createdAt: string;
  type: ReportType;
}

export interface CreateRequest {
  organizationId: string;
  name: string;
  hasPBX: boolean;
}

export interface CreateRequest2 {
  organizationId: string;
  name: string;
}

export interface CreateRequest3 {
  organizationId: string;
  userId: string;
}

export interface CreateRequest4 {
  organizationId: string;
  translates: TranslateComment[];
}

export interface CreateRequest5 {
  memberId: string;
  assetGroupId: string;
}

export interface CreateResponsiblePersonRequest {
  assetId: string;
  name: string;
  key: string;
  phone1: string;
  phone2: string;
  note: string;
}

export interface CreateServiceOrganizationRequest {
  name: string;
}

export interface CreateUserRequest {
  username: string;
  password: string;
  role: string;
}

export interface CreateZoneRequest {
  areaId: string;
  index: number;
  name: string;
  description: string;
}

export type EventCodeGroup = typeof EventCodeGroup[keyof typeof EventCodeGroup];


// eslint-disable-next-line @typescript-eslint/no-redeclare
export const EventCodeGroup = {
  Miscellaneous: 'Miscellaneous',
  Alarm: 'Alarm',
  Fault: 'Fault',
  Arming: 'Arming',
  System: 'System',
} as const;

export interface EventCodeResponse {
  id: string;
  value: number;
  group: EventCodeGroup;
  isActive: boolean;
}

export interface EventModel {
  id: string;
  createdAt: string;
  assetId: string;
  code: number;
  isAlarm: boolean;
  areaIndex: number;
  zoneIndex: number;
}

export interface FaultModel {
  id: string;
  event: EventModel;
  zoneId: string;
}

export type FileType = typeof FileType[keyof typeof FileType];


// eslint-disable-next-line @typescript-eslint/no-redeclare
export const FileType = {
  Excel: 'Excel',
  Pdf: 'Pdf',
  Zip: 'Zip',
} as const;

export interface FireDepartmentAccessModel {
  id: string;
  departmentId: string;
  userId: string;
}

export interface FireDepartmentModel {
  id: string;
  name: string;
  address: string;
}

export interface GetCommentListResponse {
  id: string;
  organizationId: string;
  translates: TranslateComment[];
}

export interface GetCommentResponse {
  id: string;
  organizationId: string;
  translates: TranslateComment[];
}

export interface GetReportResponse {
  id: string;
  userId: string;
  name: string;
  createdAt: string;
  data: string;
  type: ReportType;
}

export interface GetReportsResponseItem {
  id: string;
  userId: string;
  name: string;
  createdAt: string;
  type: ReportType;
}

export interface ITableSort {
  /** @nullable */
  field?: string | null;
  /** @nullable */
  direction?: string | null;
}

export interface LockedEventCodeModel {
  id: string;
  assetId: string;
  eventCodeId: string;
}

export interface LoginRequest {
  username: string;
  password: string;
}

export interface LoginResponse {
  id: string;
  username: string;
  role: string;
}

export interface MemberModel {
  id: string;
  userId: string;
  username: string;
  organizationId: string;
}

export interface NextAlarmScopeStatusRequest {
  /** @nullable */
  isReal: boolean | null;
}

export interface OnlineAssetStatusResponseModel {
  totalAssetsCount: number;
  onlineAssetsCount: number;
}

export interface OrganizationModel {
  id: string;
  name: string;
  description: string;
}

export interface PhotoModel {
  id: string;
  name: string;
  description: string;
  assetId: string;
  base64: string;
}

export interface ProblemDetails {
  /** @nullable */
  type?: string | null;
  /** @nullable */
  title?: string | null;
  /** @nullable */
  status?: number | null;
  /** @nullable */
  detail?: string | null;
  /** @nullable */
  instance?: string | null;
}

export type ReportType = typeof ReportType[keyof typeof ReportType];


// eslint-disable-next-line @typescript-eslint/no-redeclare
export const ReportType = {
  ByState: 'ByState',
  Journal: 'Journal',
  SummaryEvents: 'SummaryEvents',
} as const;

export interface ResetAlarmsRequest {
  assetIdList: string[];
  message: string;
}

export interface ResponseModel {
  version: string;
}

export interface ResponsiblePersonModel {
  id: string;
  name: string;
  key: string;
  phone1: string;
  phone2: string;
  note: string;
  assetId: string;
}

export interface RoleModel {
  id: string;
  name: string;
  upperCaseName: string;
}

export interface ServiceOrganizationModel {
  id: string;
  name: string;
  createdAt: string;
  updatedAt: string;
  timeStamp: Blob;
}

export interface TableDataResponseModelOfAccessModel {
  items: AccessModel[];
  total: number;
}

export interface TableDataResponseModelOfAlarmFireDepartmentDispatchModel {
  items: AlarmFireDepartmentDispatchModel[];
  total: number;
}

export interface TableDataResponseModelOfAlarmModel {
  items: AlarmModel[];
  total: number;
}

export interface TableDataResponseModelOfAreaModel {
  items: AreaModel[];
  total: number;
}

export interface TableDataResponseModelOfAssetGroupModel {
  items: AssetGroupModel[];
  total: number;
}

export interface TableDataResponseModelOfAssetModel {
  items: AssetModel[];
  total: number;
}

export interface TableDataResponseModelOfCallModel {
  items: CallModel[];
  total: number;
}

export interface TableDataResponseModelOfCameraModel {
  items: CameraModel[];
  total: number;
}

export interface TableDataResponseModelOfCameraViewModel {
  items: CameraViewModel[];
  total: number;
}

export interface TableDataResponseModelOfCheckListTemplateModel {
  items: CheckListTemplateModel[];
  total: number;
}

export interface TableDataResponseModelOfEventCodeResponse {
  items: EventCodeResponse[];
  total: number;
}

export interface TableDataResponseModelOfEventModel {
  items: EventModel[];
  total: number;
}

export interface TableDataResponseModelOfFaultModel {
  items: FaultModel[];
  total: number;
}

export interface TableDataResponseModelOfFireDepartmentAccessModel {
  items: FireDepartmentAccessModel[];
  total: number;
}

export interface TableDataResponseModelOfFireDepartmentModel {
  items: FireDepartmentModel[];
  total: number;
}

export interface TableDataResponseModelOfGetCommentListResponse {
  items: GetCommentListResponse[];
  total: number;
}

export interface TableDataResponseModelOfGetReportsResponseItem {
  items: GetReportsResponseItem[];
  total: number;
}

export interface TableDataResponseModelOfLockedEventCodeModel {
  items: LockedEventCodeModel[];
  total: number;
}

export interface TableDataResponseModelOfMemberModel {
  items: MemberModel[];
  total: number;
}

export interface TableDataResponseModelOfOrganizationModel {
  items: OrganizationModel[];
  total: number;
}

export interface TableDataResponseModelOfPhotoModel {
  items: PhotoModel[];
  total: number;
}

export interface TableDataResponseModelOfResponsiblePersonModel {
  items: ResponsiblePersonModel[];
  total: number;
}

export interface TableDataResponseModelOfTokenModel {
  items: TokenModel[];
  total: number;
}

export interface TableDataResponseModelOfUserLogModel {
  items: UserLogModel[];
  total: number;
}

export interface TableDataResponseModelOfUserModel {
  items: UserModel[];
  total: number;
}

export interface TableDataResponseModelOfZoneModel {
  items: ZoneModel[];
  total: number;
}

export interface TokenModel {
  id: string;
  name: string;
  code: string;
  organizationId: string;
}

export interface TranslateComment {
  language: string;
  value: string;
}

export interface UpdateAreaRequest {
  index: number;
  name: string;
  description: string;
}

export interface UpdateAssetOnlineStatusRequest {
  token: string;
  assetId: string;
  isOnline: boolean;
}

export interface UpdateAssetRequest {
  groupIds: string[];
  name: string;
  description: string;
  /** @nullable */
  comment: string | null;
  /** @nullable */
  latitude: number | null;
  /** @nullable */
  longitude: number | null;
  country: string;
  region: string;
  city: string;
  street: string;
  house: string;
  building: string;
  apartment: string;
  gateCode: string;
  intercomCode: string;
  ownerName: string;
  ownerPassword: string;
  ownerPhone1: string;
  ownerPhone2: string;
  identificationPassword: string;
  duressPassword: string;
  /** @nullable */
  serviceOrganizationId: string | null;
  rowVersion: Blob;
  /** @nullable */
  imei: string | null;
}

export interface UpdateCallRequest {
  commentary: string;
  isConfirmedRealAlarm: boolean;
  result: CallResult;
}

export interface UpdateCameraRequest {
  name: string;
  address: string;
}

export interface UpdateCameraViewRequest {
  dateTime: string;
  startVideo: string;
  endVideo: string;
}

export interface UpdateCheckListTemplateRequest {
  type: CheckListType;
  items: CheckListTemplateItemModel[];
}

export interface UpdateDispatchRequest {
  departmentId: string;
  dispatcherName: string;
  comment: string;
}

export interface UpdateFireDepartmentAccessRequest {
  departmentId: string;
  userId: string;
}

export interface UpdateFireDepartmentRequest {
  name: string;
  address: string;
}

export interface UpdateOrganizationRequest {
  name: string;
  description: string;
}

export interface UpdatePhotoRequest {
  assetId: string;
  name: string;
  description: string;
  base64: string;
}

export interface UpdateRequest {
  name: string;
  hasPBX: boolean;
}

export interface UpdateRequest2 {
  name: string;
}

export interface UpdateRequest3 {
  organizationId: string;
  translates: TranslateComment[];
}

export interface UpdateResponsiblePersonRequest {
  name: string;
  key: string;
  phone1: string;
  phone2: string;
  note: string;
}

export interface UpdateServiceOrganizationRequest {
  name: string;
  timestamp: Blob;
}

export interface UpdateUserRequest {
  username: string;
  password: string;
  role: string;
}

export interface UpdateUserSettingsRequest {
  positioningStrategy: string;
  /** @nullable */
  manualLatitude?: number | null;
  /** @nullable */
  manualLongitude?: number | null;
  /** @nullable */
  assetGroupId?: string | null;
}

export interface UpdateZoneRequest {
  index: number;
  name: string;
  description: string;
}

export interface UserLogModel {
  id?: string;
  assetId?: string;
  createdAt?: string;
  information?: string;
  userId?: string;
  username?: string;
}

export interface UserModel {
  id: string;
  username: string;
  role: string;
}

export interface UserSettingsModel {
  id?: string;
  userId?: string;
  positioningStrategy?: string;
  /** @nullable */
  manualLatitude?: number | null;
  /** @nullable */
  manualLongitude?: number | null;
  /** @nullable */
  assetGroupId?: string | null;
  createdAt?: string;
  updatedAt?: string;
}

export interface ZoneModel {
  id: string;
  index: number;
  name: string;
  description: string;
  areaId: string;
  hasAlarms: boolean;
  hasFaults: boolean;
}

export type GetAssetGroupListParams = {
Take?: number;
Skip?: number;
OrganizationId?: string;
};

export type GetZoneListParams = {
AssetId?: string;
Skip?: number;
Take?: number;
Sorts?: ITableSort[];
};

export type GetUserListParams = {
Skip?: number;
Take?: number;
Roles?: string;
};

export type GetLogListParams = {
Skip?: number;
Take?: number;
AssetId?: string;
};

export type GetTokenListParams = {
Skip?: number;
Take?: number;
OrganizationId?: string;
};

export type GetApiServiceOrganizationsParams = {
Skip?: number;
Take?: number;
};

export type GetResponsiblePersonListParams = {
Skip?: number;
Take?: number;
AssetId?: string;
};

export type GetReportListParams = {
Skip?: number;
Take?: number;
Search?: string;
ByDate?: string;
Alphabetic?: string;
};

export type GetPhotoListParams = {
Skip?: number;
Take?: number;
AssetId?: string;
};

export type GetOrganizationListParams = {
Skip?: number;
Take?: number;
};

export type GetMemberListParams = {
Skip?: number;
Take?: number;
OrganizationId?: string;
};

export type GetLockedEventCodeListParams = {
Skip?: number;
Take?: number;
};

export type GetFireDepartmentListParams = {
Take?: number;
Skip?: number;
Search?: string;
};

export type GetFireDepartmentAccessListParams = {
Take?: number;
Skip?: number;
DepartmentId?: string;
UserId?: string;
};

export type GetFaultListParams = {
Skip?: number;
Take?: number;
AssetId?: string;
};

export type GetEventListParams = {
Skip?: number;
Take?: number;
AssetId?: string;
AlarmsOnly?: boolean;
};

export type GetEventCodeListParams = {
Skip?: number;
Take?: number;
};

export type GetCheckListTemplateListParams = {
Skip?: number;
Take?: number;
Type?: string;
};

export type GetCameraViewListParams = {
Take?: number;
Skip?: number;
CameraId?: string;
AlarmId?: string;
From?: string;
To?: string;
};

export type GetCameraListParams = {
Take?: number;
Skip?: number;
AssetId?: string;
Search?: string;
};

export type GetCallListParams = {
Take?: number;
Skip?: number;
AssetId?: string;
AlarmScopeId?: string;
Search?: string;
};

export type GetAssetListParams = {
Take?: number;
Skip?: number;
OrganizationId?: string;
GroupId?: string;
HasAlarms?: boolean;
Search?: string;
};

export type GetAreaListParams = {
AssetId?: string;
Skip?: number;
Take?: number;
Sorts?: ITableSort[];
};

export type GetCountOfEventsParams = {
Type?: CountOfEventsType;
};

export type GetAlarmResetCommentListParams = {
organizationId?: string;
};

export type GetAlarmListParams = {
Skip?: number;
Take?: number;
AssetId?: string;
};

export type GetAlarmListByScopeParams = {
ScopeId?: string;
};

export type GetAlarmDispatchListParams = {
Take?: number;
Skip?: number;
AlarmId?: string;
DepartmentId?: string;
OnlyMine?: boolean;
};

export type GetAccessListParams = {
Skip?: number;
Take?: number;
MemberId?: string;
};

