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

package com.azure.maps.search.implementation.models;

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

/** Represents a date and time. */
@Immutable
public final class OperatingHoursTime {
    /*
     * Represents current calendar date in POI time zone, e.g. "2019-02-07".
     */
    @JsonProperty(value = "date", access = JsonProperty.Access.WRITE_ONLY)
    private String date;

    /*
     * Hours are in the 24 hour format in the local time of a POI; possible values are 0 - 23.
     */
    @JsonProperty(value = "hour", access = JsonProperty.Access.WRITE_ONLY)
    private Integer hour;

    /*
     * Minutes are in the local time of a POI; possible values are 0 - 59.
     */
    @JsonProperty(value = "minute", access = JsonProperty.Access.WRITE_ONLY)
    private Integer minute;

    /** Creates an instance of OperatingHoursTime class. */
    @JsonCreator
    private OperatingHoursTime() {}

    /**
     * Get the date property: Represents current calendar date in POI time zone, e.g. "2019-02-07".
     *
     * @return the date value.
     */
    public String getDate() {
        return this.date;
    }

    /**
     * OperatingHoursTime Constructor
     *
     * @param date The date in the format of yyyy-mm-dd represented by a string
     * @param hour int representing the hour
     * @param minute int representing the minute
     */
    public OperatingHoursTime(String date, Integer hour, Integer minute) {
        this.date = date;
        this.hour = hour;
        this.minute = minute;
    }

    /**
     * Get the hour property: Hours are in the 24 hour format in the local time of a POI; possible values are 0 - 23.
     *
     * @return the hour value.
     */
    public Integer getHour() {
        return this.hour;
    }

    /**
     * Get the minute property: Minutes are in the local time of a POI; possible values are 0 - 59.
     *
     * @return the minute value.
     */
    public Integer getMinute() {
        return this.minute;
    }
}
