import { PriorityInterface } from "../components/system-admin/system-params/system-params.component";
import { CounterLastMeasuresListItem } from "./counters-activators.interface";
import { TempFileInfo } from "./temp-file-info.interface";

export interface CorrectiveWorkOrdersListResponse{
  error: boolean;
  msg: string;
  response: CorrectiveWorkOrdersListItem[];
}

export interface CorrectiveWorkOrdersListItem{
  ID_ORDEN: string;
  CODIGO_EQUIPAMIENTO: string;
  TIPO_EQUIPAMIENTO: string;
  MODELO_EQUIPAMIENTO: string;
  ID_EQUIPAMIENTO: string;
  FECHA_INICIO: string;
  CONTADOR: string;
  FECHA_FIN: string | null;
  TIPO_ACTIVACION: string;
  ID_RESPONSABLE: string;
  TIPO_RESPONSABLE: string;
  PRIORIDAD: string;
  PRIORIDAD_OBJ?: PriorityInterface,
  ESTADO: string;
}

export interface CorrectiveWorkOrderDetailsResponse{
  error: boolean;
  msg: string;
  response: CorrectiveWorkOrderDetails;
}

export interface CorrectiveWorkOrderDetails{
  ID_ORDEN: string;
  DESCRIPCION: string;
  CODIGO_EQUIPAMIENTO: string;
  TIPO_EQUIPAMIENTO: string;
  MODELO_EQUIPAMIENTO: string;
  ID_EQUIPAMIENTO: string;
  FECHA_INICIO: string;
  TIEMPO_ESTIMADO: number;
  CONTADOR: string;
  MEDIDAS: string;
  MEDIDAS_OBJ?: CounterLastMeasuresListItem;
  PRIORIDAD: string;
  PRIORIDAD_OBJ?: PriorityInterface;
  FECHA_FINAL: string | null;
  DURACION_TOTAL: number | null;
  RECURSOS: string;
  RECURSOS_ARR?: any[];
  PERSONAL: string;
  PERSONAL_ARR?: any[];
  TIPO_ACTIVACION: string;
  ID_RESPONSABLE: string;
  TIPO_RESPONSABLE: string;
  ANALISIS_COSTOS: string | null;
  DOCUMENTOS_RELACIONADOS: string;
  DOCUMENTOS_RELACIONADOS_ARR?: TempFileInfo[];
  CLASIFICACION: string;
  COMENTARIOS: string;
  GERENCIA_SEGURIDAD: string;
  CAMPOS_EXTRA: string;
  ESTADO: string;
  USUREG: string;
  FECREG: string;
  USUMOD: string;
  FECMOD: string;
}

export interface SecurityManagementListResponse{
  error: boolean;
  msg: string;
  response: SecurityManagementListItem[];
}

export interface SecurityManagementDetailsResponse{
  error: boolean;
  msg: string;
  response: SecurityManagementListItem;
}

export interface SecurityManagementListItem{
  ID_GERENCIA_SEGURIDAD: string;
  LADA_TELEFONO_PRINCIPAL: string;
  TELEFONO_PRINCIPAL: string;
  EXTENSION_TELEFONO_PRINCIPAL: string | null;
  LADA_TELEFONO_SECUNDARIO: string | null;
  TELEFONO_SECUNDARIO: string | null;
  EXTENSION_TELEFONO_SECUNDARIO: string | null;
  CORREO_GERENCIA: string;
  GERENTE: string;
  ESTADO: string;
  USUREG: string;
  FECREG: string;
  USUMOD: string | null;
  FECMOD: string | null;
  NUMERO_ORDENES?: number;
  ORDENES_TRABAJO?: SecurityManagementAssociatedOrders[];
}

export interface SecurityManagementAssociatedOrders{
  ID_ORDEN: string;
}

export interface BlockRegistersListResponse{
  error: boolean;
  msg: string;
  response: BlockRegistersListItem[];
}

export interface BlockRegistersListItem{
  ID_BLOQUEO: string;
  BLOQUEADO: string;
  TIPO_BLOQUEADO: string;
  ESTADO: string;
  USUREG: string;
  FECREG: string;
  USUMOD: string | null;
  FECMOD: string | null;
}

export interface WorkOrderStatusHistoryListResponse{
  error: boolean;
  msg: string;
  response: WorkOrderStatusHistoryListItem[];
}

export interface WorkOrderStatusHistoryListItem{
  FECHA: string;
  ESTADO: string;
  USUARIO: string;
}

export interface ReportsListResponse{
  error: boolean;
  msg: string;
  response: ReportsListItem[];
}

export interface ReportsListItem{
  ID_INFORME: string;
  TIPO_INFORME: string;
  DOCUMENTO: string;
  USUREG: string;
  FECREG: string;
}