package com.saas.tenant.util;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;

import java.util.List;

@Slf4j
public class JsonArrayUtil {

    private static final ObjectMapper objectMapper = new ObjectMapper();

    public static String arrayToJson(String[] array) {
        if (array == null || array.length == 0) {
            return null;
        }
        try {
            return objectMapper.writeValueAsString(array);
        } catch (JsonProcessingException e) {
            log.error("Error converting array to JSON", e);
            return null;
        }
    }

    public static String[] jsonToArray(String json) {
        if (json == null || json.trim().isEmpty()) {
            return new String[0];
        }
        try {
            List<String> list = objectMapper.readValue(json, new TypeReference<List<String>>() {
            });
            return list.toArray(new String[0]);
        } catch (JsonProcessingException e) {
            log.error("Error converting JSON to array", e);
            return new String[0];
        }
    }
}
