package org.springframework.prospring.ticket.domain;

import java.math.*;

/**
 * Reprezentuje grupę cenową. Grupa cenowa kojarzy cenę z kategorią miejsc.
 */
public class PriceBand {

    // identyfikator grupy cenowej.
    private long id;

    // cena skojarzona z grupą cenową.
    private BigDecimal price;

    // kategoria miejsc skojarzona z grupą cenową.
    private SeatClass seatClass;

    /**
     * Pusty konstruktor wymagany przez specyfikację javabean.
     */
    public PriceBand() {
	}

    /**
     * Konstruktor - tworzy nową grupę cenową na podstawie podanej kategorii miejsc i ceny.
     * @param seatClass Kategoria miejsc.
     * @param price Cena.
     */
    public PriceBand(SeatClass seatClass, BigDecimal price) {
		this(0, seatClass, price);
    }

    /**
     * Konstruktor - tworzy nową grupę cenową na podstawie podanej kategorii miejsc, identyfikatora i ceny.
     * @param id Identyfikator.
     * @param seatClass Kategoria miejsc.
     * @param price Cena.
     */
    public PriceBand(long id, SeatClass seatClass, BigDecimal price) {
        this.id = id;
        this.seatClass = seatClass;
        this.price = price;
    }

    /**
     * Zwraca identyfikator tej grupy cenowej.
     * @return Identyfikator tej grupy cenowej.
     */
    public long getId() {
		return id;
	}

    /**
     * Ustawia identyfikator tej grupy cenowej.
     * @param id Identyfikator tej grupy cenowej.
     */
    public void setId(long id) {
		this.id = id;
	}

    /**
     * Zwraca cene dla tej grupy cenowej.
     * @return Cena dla tej grupy cenowej.
     */
    public BigDecimal getPrice() {
		return price;
	}

    /**
     * Ustawia cenę dla tej grupy cenowej.
     * @param price Cena dla tej grupy cenowej.
     */
    public void setPrice(BigDecimal price) {
		this.price = price;
	}

    /**
     * Returns the seat class that is associated with this price band.
     * Zwraca kategorię miejsc skojarzoną z tą grupą cenową.
     * @return Kategoria miejsc skojarzona z tą grupą cenową.
     */
    public SeatClass getSeatClass() {
		return seatClass;
	}

    /**
     * Ustawia kategorię miejsc skojarzoną z tą grupą cenową.
     * @param seatClass Kategoria miejsc skojarzona z tą grupą cenową.
     */
    public void setSeatClass(SeatClass seatClass) {
		this.seatClass = seatClass;
	}
}
