import { CommonSim } from "sim-shared/domain/CommonSim.js"; import { NosApi } from "./NosAPI.js"; const billingStates = new Map< NosApi.LineData["billingState"]["currentState"], CommonSim["billing_status"]>([ ["active", "ACTIVE"], ["terminated", "TERMINATED"] ]) const networkStates = new Map< NosApi.LineData["networkState"]["currentState"], CommonSim["network_status"] >([ ["active", "ACTIVE"], ["terminated", "TERMINATED"], ["barred", "SUSPENDED"] ]) export function nosSimToCommonSim(nosSim: NosApi.LineData): CommonSim { const billingState = billingStates.get(nosSim.billingState.currentState) ?? "UNKNOWN" const networkState = networkStates.get(nosSim.networkState.currentState) ?? "UNKNOWN" const commonSim: CommonSim = { company: "NOS", tariff: nosSim.tariffName, iccid: nosSim.physicalId, msisdn: nosSim.subscriberId, billing_status: billingState!, network_status: networkState!, raw: nosSim, imei: nosSim.imei, activation_date: new Date(nosSim.connectionDate), termination_date: new Date(nosSim.terminateDate), suspension_date: null // NOS no especifica la fecha de de 'barred' que equivale a la suspension } return commonSim }