You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.3 KiB
54 lines
1.3 KiB
<?php
|
|
|
|
namespace App\Model;
|
|
|
|
use App\Data\TacticInfo;
|
|
use App\Gateway\TacticInfoGateway;
|
|
|
|
class TacticModel {
|
|
|
|
public const TACTIC_DEFAULT_NAME = "Nouvelle tactique";
|
|
|
|
|
|
private TacticInfoGateway $tactics;
|
|
|
|
/**
|
|
* @param TacticInfoGateway $tactics
|
|
*/
|
|
public function __construct(TacticInfoGateway $tactics) {
|
|
$this->tactics = $tactics;
|
|
}
|
|
|
|
public function makeNew(string $name): TacticInfo {
|
|
return $this->tactics->insert($name);
|
|
}
|
|
|
|
public function makeNewDefault(): ?TacticInfo {
|
|
return $this->tactics->insert(self::TACTIC_DEFAULT_NAME);
|
|
}
|
|
|
|
/**
|
|
* Tries to retrieve information about a tactic
|
|
* @param int $id tactic identifier
|
|
* @return TacticInfo|null or null if the identifier did not match a tactic
|
|
*/
|
|
public function get(int $id): ?TacticInfo {
|
|
return $this->tactics->get($id);
|
|
}
|
|
|
|
/**
|
|
* Update the name of a tactic
|
|
* @param int $id the tactic identifier
|
|
* @param string $name the new name to set
|
|
* @return true if the update was done successfully
|
|
*/
|
|
public function updateName(int $id, string $name): bool {
|
|
if ($this->tactics->get($id) == null) {
|
|
return false;
|
|
}
|
|
|
|
$this->tactics->updateName($id, $name);
|
|
return true;
|
|
}
|
|
|
|
} |