package ru.khasang.cachoeira.model;
import javafx.beans.property.*;
import javafx.collections.ObservableList;
import java.time.LocalDate;
public interface ITask {
int getId();
ReadOnlyIntegerProperty idProperty();
void setId(int id);
String getName();
void setName(String name);
StringProperty nameProperty();
LocalDate getStartDate();
void setStartDateAndVerify(LocalDate startDate);
ObjectProperty<LocalDate> startDateProperty();
LocalDate getFinishDate();
void setFinishDateAndVerify(LocalDate finishDate);
ObjectProperty<LocalDate> finishDateProperty();
int getDuration();
IntegerProperty durationProperty();
void setDuration(int duration);
int getDonePercent();
void setDonePercent(int donePercent);
IntegerProperty donePercentProperty();
double getCost();
void setCost(double cost);
DoubleProperty costProperty();
String getDescription();
void setDescription(String description);
StringProperty descriptionProperty();
void addParentTask(IDependentTask parentTask);
void removeParentTask(IDependentTask parentTask);
ObservableList<IDependentTask> getParentTasks();
void setParentTasks(ObservableList<IDependentTask> parentTasks);
void addChildTask(IDependentTask childTask);
void removeChildTask(IDependentTask childTask);
ObservableList<IDependentTask> getChildTasks();
void setChildTasks(ObservableList<IDependentTask> childTasks);
ITaskGroup getGroup();
void setGroup(ITaskGroup group);
ObjectProperty<ITaskGroup> groupProperty();
void addResource(IResource resource);
void removeResource(IResource resource);
ObservableList<IResource> getResourceList();
void setResourceList(ObservableList<IResource> resources);
}