import * as Crypto from 'expo-crypto';

/** UUID v4 generado en el cliente: clave de idempotencia de cada operación. */
export function newUuid(): string {
  return Crypto.randomUUID();
}

/** Marca de tiempo del dispositivo en ISO8601 con offset (client_updated_at). */
export function nowIso(): string {
  return new Date().toISOString();
}

let tempCounter = 0;

/**
 * Id local temporal para filas creadas offline. Siempre **negativo** para no
 * colisionar nunca con los ids (positivos) del servidor; al sincronizar se
 * sustituye por el id real (ver reconcileCreate).
 */
export function nextTempId(): number {
  tempCounter = (tempCounter + 1) % 1000;
  return -(Date.now() * 1000 + tempCounter);
}

