import
{
    IdLocationNameIdentityDTO,
    IdLocationNameEntityIdentityResponseDTO,
    ItemResponseDTO,
    ObjectTypeIdentityDTO,
    ResponseContainerDTO,
    SortConditionDTO,
    IdLocationNameEntityIdentityDTO
} from "./Windream.WebService";


export interface INavigationControllerDTO
{
    FetchNodes(parameter: FetchNodesDTO): FetchNodesResponseContainerDTO;
    FullRootlineFetchNodes(parameter: FetchNodesDTO): FullRootlineFetchNodesResponseContainerDTO;
}

export interface FetchNodesDTO
{
    Item: IdLocationNameEntityIdentityDTO;
    Sorting: SortConditionDTO;
    Values: String[];
}

export interface FetchNodesResponseContainerDTO extends ResponseContainerDTO
{
    Rootline: IdLocationNameEntityIdentityResponseDTO[];
    Children: ItemResponseDTO[];
    Item: ItemResponseDTO;
}

export interface FullRootlineFetchNodesResponseContainerDTO extends ResponseContainerDTO
{
    Rootline: FullRootlineWSObjectIdentityDTO[];
    Children: ItemResponseDTO[];
    Item: ItemResponseDTO;
}

export interface FullRootlineWSObjectIdentityDTO extends IdLocationNameEntityIdentityResponseDTO
{
    Children: RootlineChildItemDTO[];
    ObjectType: ObjectTypeIdentityDTO;
}

export interface RootlineChildItemDTO extends IdLocationNameEntityIdentityResponseDTO
{
    ObjectType: ObjectTypeIdentityDTO;
}