class Client implements ConcurrencyControlledEntity {

    public void markDead(LocalDate dateOfDeath,
            LocalTime timeOfDeath,
            Country countryOfDeath,
            String regionOfDeath,
            String cityOfDeath) {
        this.dateOfDeath = dateOfDeath;
        this.timeOfDeath = timeOfDeath;
        this.countryOfDeath = countryOfDeath;
        this.regionOfDeath = regionOfDeath;
        this.cityOfDeath = cityOfDeath;

        for (TransplantRequest request : transplantRequests) {
            if (request.getStatus() == TransplantRequestStatus.WAITING) {
                request.setStatus(TransplantRequestStatus.CANCELLED);
                request.setResolvedDateTime(LocalDateTime.now());
                request.setResolvedReason("The client died.");
            }
        }
        for (Organ organType : getCurrentlyDonatedOrgans()) {
            donateOrgan(organType, LocalDateTime.of(dateOfDeath, timeOfDeath));
        }
    }

    public  Client();
    public  Client(int uid);
    public  Client(String firstName, String middleName, String lastName, LocalDate dateOfBirth, Integer uid);

}