prepare("SELECT * FROM `teams` WHERE `id` = ?;"); $req->execute([htmlspecialchars($id)]); $data = $req->fetch(); if ($data === false) return null; $team = new Team(); $team->fill($data); return $team; } public static function fromTrigram($trigram) { global $DB, $YEAR; $req = $DB->prepare("SELECT * FROM `teams` WHERE `trigram` = ? AND `year` = $YEAR;"); $req->execute([htmlspecialchars($trigram)]); $data = $req->fetch(); if ($data === false) return null; $team = new Team(); $team->fill($data); return $team; } public static function fromAccessCode($access_code) { global $DB, $YEAR; $req = $DB->prepare("SELECT * FROM `teams` WHERE `access_code` = ? AND `year` = $YEAR;"); $req->execute([htmlspecialchars($access_code)]); $data = $req->fetch(); if ($data === false) return null; $team = new Team(); $team->fill($data); return $team; } private function fill($data) { $this->id = $data["id"]; $this->name = $data["name"]; $this->trigram = $data["trigram"]; $this->tournament = $data["tournament"]; $this->encadrants = [$data["encadrant_1"], $data["encadrant_2"]]; $this->participants = [$data["participant_1"], $data["participant_2"], $data["participant_3"], $data["participant_4"], $data["participant_5"], $data["participant_6"]]; $this->inscription_date = $data["inscription_date"]; $this->validation_status = ValidationStatus::fromName($data["validation_status"]); $this->final_selection = $data["final_selection"] == true; $this->access_code = $data["access_code"]; $this->year = $data["year"]; } public function getId() { return $this->id; } public function getName() { return $this->name; } public function setName($name) { global $DB; $this->name = $name; $DB->prepare("UPDATE `teams` SET `name` = ? WHERE `id` = ?;")->execute([$name, $this->id]); } public function getTrigram() { return $this->trigram; } public function setTrigram($trigram) { global $DB; $this->trigram = $trigram; $DB->prepare("UPDATE `teams` SET `trigram` = ? WHERE `id` = ?;")->execute([$trigram, $this->id]); } public function getTournamentId() { return $this->tournament; } public function setTournamentId($tournament) { global $DB; $this->tournament = $tournament; $DB->prepare("UPDATE `teams` SET `tournament` = ? WHERE `id` = ?;")->execute([$tournament, $this->id]); } public function getEncadrants() { return $this->encadrants; } public function setEncadrant($i, $encadrant) { global $DB; $this->encadrants[$i - 1] = $encadrant; /** @noinspection SqlResolve */ $DB->prepare("UPDATE `teams` SET `encadrant_$i` = ? WHERE `id` = ?;")->execute([$encadrant, $this->id]); } public function getParticipants() { return $this->participants; } public function setParticipant($i, $participant) { global $DB; $this->participants[$i - 1] = $participant; /** @noinspection SqlResolve */ $DB->prepare("UPDATE `teams` SET `participant_$i` = ? WHERE `id` = ?;")->execute([$participant, $this->id]); } public function getInscriptionDate() { return $this->inscription_date; } public function getValidationStatus() { return $this->validation_status; } public function setValidationStatus($status) { global $DB; $this->validation_status = $status; /** @noinspection PhpUndefinedMethodInspection */ $DB->prepare("UPDATE `teams` SET `validation_status` = ? WHERE `id` = ?;")->execute([ValidationStatus::getName($status), $this->id]); } public function isSelectedForFinal() { return $this->final_selection; } public function selectForFinal($selected) { global $DB; $this->final_selection = $selected; $DB->prepare("UPDATE `teams` SET `final_selection` = ? WHERE `id` = ?;")->execute([$selected, $this->id]); } public function getAccessCode() { return $this->access_code; } public function getYear() { return $this->year; } }