// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.

package com.azure.health.insights.clinicalmatching.models;

import com.azure.core.annotation.Immutable;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;

/** `GeoJSON` geometry, representing the area circle's center. */
@Immutable
public final class AreaGeometry {
    /*
     * `GeoJSON` geometry type.
     */
    @JsonProperty(value = "type", required = true)
    private GeoJsonGeometryType type;

    /*
     * Coordinates of the area circle's center, represented according to the `GeoJSON` standard.
     * This is an array of 2 decimal numbers, longitude and latitude (precisely in this order).
     */
    @JsonProperty(value = "coordinates", required = true)
    private List<Double> coordinates;

    /**
     * Creates an instance of AreaGeometry class.
     *
     * @param type the type value to set.
     * @param coordinates the coordinates value to set.
     */
    @JsonCreator
    public AreaGeometry(
            @JsonProperty(value = "type", required = true) GeoJsonGeometryType type,
            @JsonProperty(value = "coordinates", required = true) List<Double> coordinates) {
        this.type = type;
        this.coordinates = coordinates;
    }

    /**
     * Get the type property: `GeoJSON` geometry type.
     *
     * @return the type value.
     */
    public GeoJsonGeometryType getType() {
        return this.type;
    }

    /**
     * Get the coordinates property: Coordinates of the area circle's center, represented according to the `GeoJSON`
     * standard. This is an array of 2 decimal numbers, longitude and latitude (precisely in this order).
     *
     * @return the coordinates value.
     */
    public List<Double> getCoordinates() {
        return this.coordinates;
    }
}
