import {
   IGraphQLMenuItem,
   IGraphQLPageFieldsFragment,
   IGraphQLPageItemFragment,
   IGraphQLProductPhoto,
   IGraphQLShopCurrency
} from '@assets/interfaces/gqlApi/graphql';

export interface IPage extends Pick<IGraphQLPageItemFragment, 'id' | 'name' | 'url' | 'target'> {
   children: IPage[];
}

export interface IMenuParent extends Pick<IGraphQLMenuItem, 'id'> {
}

export interface IMenuPhoto extends Pick<IGraphQLProductPhoto, 'id' | 'source'> {
}

export interface IMenuSection extends Partial<Pick<IGraphQLMenuItem, 'id' | 'url' | 'name' | 'nameShort' | 'isVirtual'>> {
   parent?: IMenuParent;
   children: IMenuItem[];
   photo?: IMenuPhoto;
}

export interface IMenuItem extends Pick<IGraphQLMenuItem, 'id' | 'url' | 'name' | 'nameShort' | 'parent' | 'hasChildren' | 'isVirtual'> {
   photo?: IMenuPhoto;
}

export interface IPage extends IGraphQLPageFieldsFragment {
}

export interface IShopCurrencies extends Pick<IGraphQLShopCurrency, 'code' | 'active'> {
}

