/**
 * Represents a cashier who operates a register till.
 * Inherits from Employee and applies a 1.25x pay multiplier.
 * 
 * @author Dr. Hyrum D. Carroll
 * @author Gemini 3.6 Flash
 * @version 1.0
 */
public class Cashier extends Employee {
    private double tillStart;
    private double tillEnd;

    /**
     * Constructs a Cashier with basic employee details.
     * Till values default to 0.0 until set.
     * 
     * @param name        The name of the cashier.
     * @param employeeID  The unique ID string for the cashier.
     * @param startDate   The start date.
     * @param basePayRate The hourly pay rate in dollars.
     * @param hoursWorked The total hours worked in the pay period.
     */
    public Cashier(String name, String employeeID, String startDate, double basePayRate, double hoursWorked) {
        super(name, employeeID, startDate, basePayRate, hoursWorked);
    }

    /**
     * Gets the starting till balance.
     * 
     * @return Starting till amount in dollars.
     */
    public double getTillStart() {
        return tillStart;
    }

    /**
     * Sets the starting till balance.
     * 
     * @param tillStart Starting till amount in dollars.
     */
    public void setTillStart(double tillStart) {
        this.tillStart = tillStart;
    }

    /**
     * Gets the ending till balance.
     * 
     * @return Ending till amount in dollars.
     */
    public double getTillEnd() {
        return tillEnd;
    }

    /**
     * Sets the ending till balance.
     * 
     * @param tillEnd Ending till amount in dollars.
     */
    public void setTillEnd(double tillEnd) {
        this.tillEnd = tillEnd;
    }

    /**
     * Calculates pay for a cashier incorporating a 1.25 multiplier.
     * 
     * @return Total cashier pay.
     */
    @Override
    public double getPay() {
        return basePayRate * 1.25 * hoursWorked;
    }
}