<?php

namespace lib\Services;

use lib\Entities\GearlistEntity as Entity;
use lib\Models\GearlistModel as Model;

class GearlistService extends CommonService
{
  public function __construct()
  {
    parent::__construct();
  }
  final public function getClassName(): string
  {
    return "Gearlist";
  }
  final public function getClassPath(): string
  {
    return $this->getClassName();
  }
  public function getModelClass(): string
  {
    return Model::class;
  }
  public function getEntityClass(): string
  {
    return Entity::class;
  }

  public function getEntitiesForLineUp(): array
  {
    $this->getModel()->whereNotIn("process", DBMS_GEARLIST_PROCESS_TYPES);
    $this->getModel()->whereNotIn("cpuname", DBMS_GEARLIST_CPU_TYPES);
    $this->getModel()->orderBy(["process" => "ASC", "price" => "ASC", "cpuname" => "asc"]);
    return $this->getEntities();
  }
}
