using System.Text;

namespace adas_core.Domain.Utils;

public static class ObjectUtils
{
    public static string ToStr(this object? obj)
    {
        if (obj == null) return "[OBJ NULL]";
        var type = obj.GetType();
        //if (type == null) return "[OBJ TYPE NULL]";
        StringBuilder sb = new();
        sb.Append(type.Name + "[");

        foreach (var property in obj.GetType().GetProperties())
        {
            var value = obj.GetType().GetProperty(property.Name)?.GetValue(obj);
            if (value == null) continue;
            sb.Append($"{property.Name}: {value},");
        }

        sb.Append(']');
        return sb.ToString();
    }
}