import { Result } from "sim-shared/domain/Result.js"; export type StatusEnum = 'error' | 'finished' | 'noRequestId' | 'running' | 'noMassID'; export interface IOperationsRepository { createOperation(data: ObjeniousOperation): Promise> updateOperation(data: ObjeniousOperationChange): Promise> getPendingOperations(): Promise> } export type ObjeniousOperation = { id?: number; /** Uuid del mensaje asociado a la operacion */ correlation_id?: string; operation: "activate" | string; // TODO: completar y actualizar retry_count?: number; max_retry?: number; max_date_retry?: string | null; iccids: string; // Deberia ser string[] pero no parseo la lista de iccids request_id?: string; mass_action_id?: string; end_date?: string | null; error?: string | null; status: StatusEnum; objenious_status?: string; last_change_date?: string; } export type ObjeniousOperationChange = { id?: number; operation_id: number; info?: string | null; error?: string | null; new_status: StatusEnum; previous_status?: StatusEnum; new_objenious_status?: string; previous_objenious_status?: string; new_request_id?: string; new_mass_action_id?: string; } export namespace Objenious { export type Status = "En Cours" | "Terminé"; export type Identifier = "IMSI" | "MSISDN" | "REFERENCE" | "ICCID" | "IMEI" export type ResponseGetRequestById = { created: string, status: "NEW" | "RUNNING" | "OK" | "KO" | "REPLAYED" | "CANCELLED" | "CLOSED" | "DISABLED", statusDate: string, actionType: ActionType massActionIds: number[], actionRequestReports: { requestId: string, actionRequestReportDataDTOs: [ { data: string, newData: string | null, iccid: string, dataStatus: DataStatus } ] }[], } export type DataStatus = "DATA_INVALID_FORMAT" | "DATA_NOT_FOUND" | "DATA_NOT_ACTIVATED" | "SERVICE_DATA_NOT_ACTIVATED" | "DATA_WRONG_STATUS" | "DATA_NOT_AUTHORIZED" | "DATA_CUSTOMER_ACCOUNT_NOT_AUTHORIZED" | "DATA_AMBIGUOUS" | "NEW_DATA_INVALID_FORMAT" | "NEW_DATA_ALREADY_EXISTS" | "DUPLICATE_DATA" | "DATA_TERMINATION_VALIDATED" | "DATA_TERMINATION_SECURISED" | "MAX_ALARM_INSTANCE" | "MAX_ALARM_INSTANCE_TO_CATCH_UP" | "ACTIVATED_LINE_CANNOT_BE_TRANSFERED" | "ESIM_WRONG_STEP" | "ESIM_WRONG_PAIRED_VALUE" | "ESIM_WRONG_DOWNLOAD_STATE" | "ESIM_WRONG_STATUS" | "ESIM_WRONG_FAMILY" | "ESIM_WRONG_CATEGORY" | "ENTITY_STATUS_NOT_AUTHORIZED" | "LONG_LIFE_NOT_ALLOWED" | "RCARD_NOT_COMPATIBLE" | "APN_NOT_FOUND" | "APN_OR_DNN_NOT_FOUND" | "APN_CONFIGURATION_NOT_FOUND" | "APN_CONFIGURATION_INVALID_PARAMETER_FILE" | "IP_NOT_AVAILABLE" | "RADIUS_FIELD_LENGTH_NOT_ALLOWED" | "RADIUS_LOGIN_OR_PASSWORD_NOT_FOUND" | "RADIUS_PASSWORD_NOT_ALLOWED" | "RADIUS_LOGIN_NOT_ALLOWED" | "NETWORK_NOT_ACTIVATED" | "CHANGE_CUSTOMER_ACCOUNT_NOT_AllOWED" | "CHANGE_OFFER_NOT_ALLOWED" | "SIM_NOT_EUICC" | "OFFER_NOT_WSF_PALIER_FLOTTE_FR" export type ActionType = "PREACTIVATION" | "PREACTIVATION_ACTIVATION" | "ACTIVATION" | "STATUS_CHANGE" | "ICCID_CHANGE" | "EUICC_NOTIFICATION" | "EUICC_AUDIT" | "MSISDN_CHANGE" | "ALARM_SETTING" | "ALARM_UNSETTING" | "CUSTOM_FIELDS_UPDATE" | "SERVICE_CHANGE" | "SEND_SMS" | "CHANGE_OFFER" | "PORT_IN" | "PORT_OUT" | "CHANGE_CUSTOMER_ACCOUNT" | "SIMCARD_TRANSFER" | "GEO_LOCATION" | "UPDATE_COMMITMENT" | "COACH_M2M" | "PP_RECHARGE" | "TERMINATION_DFE" | "DO_ORDER_PAYMENT" | "DO_TOP_UP" | "RADIUS_READ" | "RADIUS_UPDATE" | "RADIUS_SYNCHRONIZE" | "NETWORK_RESET" | "UPDATE_YORK_COMMUNITY" | "SUSPENSION" | "REACTIVATION" | "RESILIATION" | "SORTIE_TEST" | "VALIDATION_RESILIATION" | "REFUS_RESILIATION"; export type ParametersGetMassAction = { massActionId?: string, unitActionId?: string, createDateMin?: string, createDateMax?: string, dueDateMin?: string, dueDateMax?: string, endDateMin?: string, endDateMax?: string, "identifier.identifiers"?: string[], "identifier.identifierType"?: Identifier, actionTypes?: ActionType, errorCodes?: string[], pageNumber?: number, pageSize?: number } export type ResponseGetMassAction = { id: number, loginCreator?: string, longinCancellor?: string, actionType: ActionType, dueDate?: string, targetActionNumber?: number, created: string, started?: string, ended?: string, status: string, info?: string } }