package org.dddlib.organisation.application;
import org.dayatang.domain.Entity;
import org.dddlib.organisation.domain.Organization;
import org.dddlib.organisation.domain.Party;
import org.dddlib.organisation.domain.Post;
import java.util.Date;
public interface OrganisationApplication {
<T extends Entity> T getEntity(Class<T> entityClass, Long entityId);
void createOrganization(Organization orgToCreate, Organization parent, Date date);
void terminateParty(Party party, Date date);
void changeParentOfOrganization(Organization organization, Organization newParent, Date date);
void createPostUnderOrganization(Post post, Organization organization, Date date);
}