package org.springframework.prospring.ticket.service;

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

/**
 * Reprezentuje błądu zgłaszany podczas rezerwacji lub zamawiania miejsca, które
 * nie jest już dostępne (czyli, które zostało już zarezerwowane przez innego klienta).
 */
public class RequestedSeatNotAvailableException extends BaseApplicationException {

    private final static String ERROR_CODE = "seatNotAvailable";

    private Performance performance;

    public RequestedSeatNotAvailableException(Performance performance) {
        this("Żądane miejsca na przedstawienie " + performance.getShow().getName() + " nie są dostępne.", performance);
    }

    public RequestedSeatNotAvailableException(String message, Performance performance) {
        super(ERROR_CODE, message);
        this.performance = performance;
    }

    /**
     * Zwraca spektakl na jaki miały być zarezerwowane miejsca.
     * @return Spektakl na jaki miały być zarezerwowane miejsca.
     */
    public Performance getPerformance() {
        return performance;
    }

}
