package de.avatic.lcc.model.db.properties;

import de.avatic.lcc.model.db.rates.ValidityPeriodState;

import java.time.LocalDateTime;


/**
 * Represents a set of properties with a defined validity period.
 * This class includes information about the start and end dates
 * as well as the state of the validity period.
 */
public class PropertySet {

    private Integer id;

    private LocalDateTime startDate;

    private LocalDateTime endDate;

    private ValidityPeriodState state;

    /**
     * Gets the unique identifier of the property set.
     *
     * @return the ID of the property set
     */
    public Integer getId() {
        return id;
    }

    /**
     * Sets the unique identifier of the property set.
     *
     * @param id the ID to set
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * Gets the start date of the validity period for this property set.
     *
     * @return the start date of the validity period
     */
    public LocalDateTime getStartDate() {
        return startDate;
    }

    /**
     * Sets the start date of the validity period for this property set.
     *
     * @param startDate the start date to set
     */
    public void setStartDate(LocalDateTime startDate) {
        this.startDate = startDate;
    }

    /**
     * Gets the end date of the validity period for this property set.
     *
     * @return the end date of the validity period
     */
    public LocalDateTime getEndDate() {
        return endDate;
    }

    /**
     * Sets the end date of the validity period for this property set.
     *
     * @param endDate the end date to set
     */
    public void setEndDate(LocalDateTime endDate) {
        this.endDate = endDate;
    }

    /**
     * Gets the state of the validity period for this property set.
     *
     * @return the state of the validity period
     */
    public ValidityPeriodState getState() {
        return state;
    }

    /**
     * Sets the state of the validity period for this property set.
     *
     * @param state the state of the validity period to set
     */
    public void setState(ValidityPeriodState state) {
        this.state = state;
    }
}
