package org.github.tess1o.geopulse.version;

import io.quarkus.runtime.annotations.StaticInitSafe;
import jakarta.inject.Inject;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import org.eclipse.microprofile.config.inject.ConfigProperty;

import java.util.Map;
import org.eclipse.microprofile.openapi.annotations.tags.Tag;

@Path("/api/version")
@Tag(name = "User: System", description = "Read application version and version status.")
public class VersionResource {
    @ConfigProperty(name = "quarkus.application.version")
    @StaticInitSafe
    String version;

    @Inject
    VersionStatusService versionStatusService;

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public Response getVersion() {
        return Response.ok(Map.of("version", version)).build();
    }

    @GET
    @Path("/status")
    @Produces(MediaType.APPLICATION_JSON)
    public Response getVersionStatus() {
        return Response.ok(versionStatusService.getVersionStatus()).build();
    }
}
