import { RequireEmptyFunction, RequireInteractiveControl } from 'ekangularbase/src/interface/Interactive Component/RequireInteractiveControl';

export interface SideBarMenu {
    id: string;
    // pageTitle: string;
    displayName: string;
    menuId: string;
    parentMenuId: string;
    displaySequence: number;
    icon: string;
    routerLink: string;
    queryParams: string;
    moduleName: string;
    permission: string;
    ocCategoryIds: string[];
    regionIds: string[];
    regionsDisplay: string;
    ocCategoriesDisplay: string;
    isHide: boolean;
    hqOnly: boolean;
}

export class SideBarMenuClass implements SideBarMenu, RequireInteractiveControl {
    hqOnly: boolean;
    isHide: boolean;
    regionsDisplay: string;
    ocCategoriesDisplay: string;
    ocCategoryIds: string[];
    regionIds: string[];
    id: string;
    // pageTitle: string;
    displayName: string;
    menuId: string;
    parentMenuId: string;
    displaySequence: number;
    icon: string;
    routerLink: string;
    queryParams: string;
    moduleName: string;
    isLocked: boolean;
    permission: string;
}

export class SideBarMenuFunc implements RequireEmptyFunction {
    public empty(): SideBarMenuClass {
        return {
            hqOnly: false,
            isHide: false,
            regionsDisplay: '',
            ocCategoriesDisplay: '',
            ocCategoryIds: [],
            regionIds: [],
            isLocked: false,
            id: '00000000-0000-0000-0000-000000000000',
            // pageTitle: "",
            displayName: '',
            menuId: '',
            parentMenuId: '',
            displaySequence: 0,
            icon: '',
            routerLink: '',
            queryParams: '',
            moduleName: '',
            permission: '',
        };
    }
}
