package Customer;
=begin
* wait: simulates that the customer waits in the queue for a number of minutes, given
as an integer parameter, while another customer is being served. Returns nothing.
* hasLeft: Returns whether the customer has left the shop (true/false). No parameters.
* getRequiredTime: Returns the time in minutes required to serve the customer. No
parameters.
* getPayment: Returns the amount (integer, in GBP) which the customer needs to pay.
No parameters.
=cut
use Moo;
use constant TIME => 10;
use constant COST => 1;
sub wait { } # overridden in MaleCustomer & FemaleCustomer
sub hasLeft { 0 } # never leaves
sub getRequiredTime { TIME }
sub getPayment { COST }
sub parentMethodOnly { 'inheritance check OK' }
no Moose;
__PACKAGE__->meta->make_immutable;
1;