import { Injectable } from '@angular/core';
import { AlgorithmCategory } from './algorithm-category';
import {RouterConstants} from '../../constants/RouterConstants';

@Injectable({
  providedIn: 'root'
})
export class AlgorithmsService {

  private readonly categories: AlgorithmCategory[] = [
    {
      id: 'pathfinding',
      title: 'ALGORITHM.PATHFINDING.TITLE',
      description: 'ALGORITHM.PATHFINDING.DESCRIPTION',
      routerLink: RouterConstants.PATHFINDING.LINK,
      icon: 'route'
    },
    {
      id: 'sorting',
      title: 'ALGORITHM.SORTING.TITLE',
      description: 'ALGORITHM.SORTING.DESCRIPTION',
      routerLink: RouterConstants.SORTING.LINK,
      icon: 'sort'
    },
    {
      id: 'gameOfLife',
      title: 'ALGORITHM.GOL.TITLE',
      description: 'ALGORITHM.GOL.DESCRIPTION',
      routerLink: RouterConstants.GOL.LINK,
      icon: 'grid_on'
    },
    {
      id: 'labyrinth',
      title: 'ALGORITHM.LABYRINTH.TITLE',
      description: 'ALGORITHM.LABYRINTH.DESCRIPTION',
      routerLink: RouterConstants.LABYRINTH.LINK,
      icon: 'grid_view'
    },
    {
      id: 'fractal',
      title: 'ALGORITHM.FRACTAL.TITLE',
      description: 'ALGORITHM.FRACTAL.DESCRIPTION',
      routerLink: RouterConstants.FRACTAL.LINK,
      icon: 'blur_on'
    },
    {
      id: 'fractal3d',
      title: 'ALGORITHM.FRACTAL3D.TITLE',
      description: 'ALGORITHM.FRACTAL3D.DESCRIPTION',
      routerLink: RouterConstants.FRACTAL3d.LINK,
      icon: 'view_in_ar'
    },
    {
      id: 'pendulum',
      title: 'ALGORITHM.PENDULUM.TITLE',
      description: 'ALGORITHM.PENDULUM.DESCRIPTION',
      routerLink: RouterConstants.PENDULUM.LINK,
      icon: 'rotate_right'
    },
    {
      id: 'cloth',
      title: 'ALGORITHM.CLOTH.TITLE',
      description: 'ALGORITHM.CLOTH.DESCRIPTION',
      routerLink: RouterConstants.CLOTH.LINK,
      icon: 'texture'
    },
    {
      id: 'fourColor',
      title: 'ALGORITHM.FOUR_COLOR.TITLE',
      description: 'ALGORITHM.FOUR_COLOR.DESCRIPTION',
      routerLink: RouterConstants.FOUR_COLOR.LINK,
      icon: 'palette'
    }
  ];

  getCategories(): AlgorithmCategory[] {
    return this.categories;
  }
}
