import {Injectable} from '@angular/core';

export interface BadgeItem {
  type: string;
  value: string;
}

export interface ChildrenItems {
  state: string;
  name: string;
  type?: string;
}

export interface Menu {
  state: string;
  name: string;
  type: string;
  icon: string;
  badge?: BadgeItem[];
  children?: ChildrenItems[];
}

const MENUITEMS = [
  {
    state: '/',
    name: 'اعلانات',
    type: 'link',
    icon: 'explore'
  },
  {
    state: 'user',
    name: 'مدیریت کاربران',
    type: 'sub',
    icon: 'account_circle',
    children: [
      {state: 'users', name: 'کاربران'},
      {state: 'roles', name: 'نقش ها'},
      {state: 'permissions', name: 'سظح دسترسی ها'}
    ]
  }, {
    state: 'basic',
    name: 'اطلاعات پایه',
    type: 'sub',
    icon: 'info',
    children: [
      {state: 'services', name: 'لیست خدمات'},
      {state: 'products', name: 'لیست محصولات'},
      {state: 'types', name: 'لیست نوع ها'},
    ]
  }, {
    state: 'request',
    name: 'درخواست',
    type: 'sub',
    icon: 'live_help',
    children: [
      {state: 'requests', name: 'لیست درخواستها'},
    ]
  }, {
    state: 'mali',
    name: 'تراکنش',
    type: 'sub',
    icon: 'payment',
    children: [
      {state: 'transactions', name: 'لیست تراکنش ها'},
    ]
  },
  {
    state: 'message',
    name: 'ارسال پیام',
    type: 'sub',
    icon: 'sms',
    children: [
      {state: 'ListApps', name: 'مشخصات سیستم کاربران'},
      {state: 'ListMessages', name: 'پیام های ارسال شده '},
    ]
  },
  {
    state: 'reports',
    name: 'گزارشات',
    type: 'sub',
    icon: 'report',
    children: [
      {state: 'reports', name: 'درخواست های کامل شده '},
    ]
  },
  {
    state: 'supports',
    name: 'شکایات',
    type: 'sub',
    icon: 'attachment',
    children: [
      {state: 'supports', name: 'شکایات'},
    ]
  },
  {
    state: 'supporttitles',
    name: 'دسته بندی ها',
    type: 'sub',
    icon: 'category',
    children: [
      {state: 'supporttitles', name: 'دسته بندی ها '},
    ]
  },
];

@Injectable()
export class MenuService {

  getAll(): Menu[] {
    return MENUITEMS;
  }

  add(menu: Menu) {
    MENUITEMS.push(menu);
  }
}
