namespace YMhut.Box.Core.SolarSystem;

public sealed record SolarEphemerisPayload(
    string Type,
    string Source,
    DateTimeOffset EpochUtc,
    IReadOnlyList<SolarEphemerisPlanet> Planets);

public sealed record SolarEphemerisPlanet(
    string Id,
    HeliocentricAu HeliocentricAu);

public sealed record HeliocentricAu(
    double X,
    double Y,
    double Z);

public interface ISolarEphemerisService
{
    Task<SolarEphemerisPayload> GetCurrentAsync(CancellationToken cancellationToken = default);

    Task<SolarEphemerisPayload?> GetPreciseCurrentAsync(CancellationToken cancellationToken = default);
}
