package org.springframework.prospring.ticket.dao.hibernate;

import org.springframework.prospring.ticket.domain.*;

/**
 * Klasa pomocnicza kojarząca ilość dostępnych miejsc ze spektaklem i zakresem cen.
 */
public class AvailabilityDetail {

    // skojarzony zakres cen.
    private PriceBand priceBand;

    // skojarzony spektakl.
    private Performance performance;

    // ilość dostępnych miejsc.
    private int availableSeatCount;

    /**
     * Pusty konstruktor wymagany przez specyfikację javabeans.
     */
    public AvailabilityDetail() {
    }

    /**
     * Konstruktor - tworzy nowy obiekt AvailabilityDetails o podanych wartościach.
	 * @param priceBand Skojarzony zakres cen.
	 * @param performance Skojarzony spektakl.
	 * @param availableSeatCount Ilość dostępnych miejsc.
	 */
	public AvailabilityDetail(PriceBand priceBand, Performance performance, int availableSeatCount) {
		super();
		this.priceBand = priceBand;
		this.performance = performance;
		this.availableSeatCount = availableSeatCount;
	}

    /**
     * Zwraca ilość dostępnych miejsc dla danej kombinacji zakresu cen i spektaklu.
     * @return Zwraca ilość dostępnych miejsc.
     */
    public int getAvailableSeatCount() {
		return availableSeatCount;
	}

    /**
     * Ustawia ilość dostępnych miejsc dla danej kombinacji zakresu cen i spektaklu.
     * @param availableSeatCount Ilość dostępnych miejsc.
     */
    public void setAvailableSeatCount(int availableSeatCount) {
		this.availableSeatCount = availableSeatCount;
	}

    /**
     * Zwraca spektakl dla danej kombinacji zakresu cen i spektaklu.
     * @return Spektakl dla danej kombinacji zakresu cen i spektaklu.
     */
    public Performance getPerformance() {
		return performance;
	}

    /**
     * Ustawia spektakl dla danej kombinacji zakresu cen i spektaklu.
     * @param performance Spektakl dla danej kombinacji zakresu cen i spektaklu.
     */
    public void setPerformance(Performance performance) {
		this.performance = performance;
	}

    /**
     * Zwraca zakres cen dla danej kombinacji zakresu cen i spektaklu.
     * @return Zakres cen dla danej kombinacji zakresu cen i spektaklu.
     */
    public PriceBand getPriceBand() {
		return priceBand;
	}

    /**
     * Ustawia zakres cen dla danej kombinacji zakresu cen i spektaklu.
     * @param priceBand Zakres cen dla danej kombinacji zakresu cen i spektaklu.
     */
    public void setPriceBand(PriceBand priceBand) {
		this.priceBand = priceBand;
	}

}
