mirror of
				https://gitlab.com/animath/si/plateforme.git
				synced 2025-11-04 13:12:17 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			332 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			332 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
class Document
 | 
						|
{
 | 
						|
	private $file_id;
 | 
						|
	private $user_id;
 | 
						|
	private $team_id;
 | 
						|
	private $tournament_id;
 | 
						|
	private $type;
 | 
						|
	private $uploaded_at;
 | 
						|
	private $version;
 | 
						|
 | 
						|
	private function __construct() {}
 | 
						|
 | 
						|
	public static function fromId($id)
 | 
						|
	{
 | 
						|
		global $DB;
 | 
						|
		$req = $DB->prepare("SELECT * FROM `documents` WHERE `file_id` = ?;");
 | 
						|
		$req->execute([htmlspecialchars($id)]);
 | 
						|
		$data = $req->fetch();
 | 
						|
 | 
						|
		if ($data === false)
 | 
						|
			return null;
 | 
						|
 | 
						|
		return self::fromData($data);
 | 
						|
	}
 | 
						|
 | 
						|
	public static function fromData($data)
 | 
						|
	{
 | 
						|
		$doc = new Document();
 | 
						|
		$doc->fill($data);
 | 
						|
		return $doc;
 | 
						|
	}
 | 
						|
 | 
						|
	private function fill($data)
 | 
						|
	{
 | 
						|
		$this->file_id = $data["file_id"];
 | 
						|
		$this->user_id = $data["user"];
 | 
						|
		$this->team_id = $data["team"];
 | 
						|
		$this->tournament_id = $data["tournament"];
 | 
						|
		$this->type = DocumentType::fromName($data["type"]);
 | 
						|
		$this->uploaded_at = $data["uploaded_at"];
 | 
						|
		$this->version = isset($data["version"]) ? $data["version"] : 1;
 | 
						|
	}
 | 
						|
 | 
						|
	public function getFileId()
 | 
						|
	{
 | 
						|
		return $this->file_id;
 | 
						|
	}
 | 
						|
 | 
						|
	public function getUserId()
 | 
						|
	{
 | 
						|
		return $this->user_id;
 | 
						|
	}
 | 
						|
 | 
						|
	public function getTeamId()
 | 
						|
	{
 | 
						|
		return $this->team_id;
 | 
						|
	}
 | 
						|
 | 
						|
	public function getTournamentId()
 | 
						|
	{
 | 
						|
		return $this->tournament_id;
 | 
						|
	}
 | 
						|
 | 
						|
	public function getType()
 | 
						|
	{
 | 
						|
		return $this->type;
 | 
						|
	}
 | 
						|
 | 
						|
	public function getUploadedAt()
 | 
						|
	{
 | 
						|
		return $this->uploaded_at;
 | 
						|
	}
 | 
						|
 | 
						|
	public function getVersion()
 | 
						|
	{
 | 
						|
		return $this->version;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
class Solution
 | 
						|
{
 | 
						|
	private $file_id;
 | 
						|
	private $team_id;
 | 
						|
	private $tournament_id;
 | 
						|
	private $problem;
 | 
						|
	private $uploaded_at;
 | 
						|
	private $version;
 | 
						|
 | 
						|
	private function __construct() {}
 | 
						|
 | 
						|
	public static function fromId($id)
 | 
						|
	{
 | 
						|
		global $DB;
 | 
						|
		$req = $DB->prepare("SELECT * FROM `solutions` WHERE `file_id` = ?;");
 | 
						|
		$req->execute([htmlspecialchars($id)]);
 | 
						|
		$data = $req->fetch();
 | 
						|
 | 
						|
		if ($data === false)
 | 
						|
			return null;
 | 
						|
 | 
						|
		return self::fromData($data);
 | 
						|
	}
 | 
						|
 | 
						|
	public static function fromData($data)
 | 
						|
	{
 | 
						|
		$sol = new Solution();
 | 
						|
		$sol->fill($data);
 | 
						|
		return $sol;
 | 
						|
	}
 | 
						|
 | 
						|
	private function fill($data)
 | 
						|
	{
 | 
						|
		$this->file_id = $data["file_id"];
 | 
						|
		$this->team_id = $data["team"];
 | 
						|
		$this->tournament_id = $data["tournament"];
 | 
						|
		$this->problem = $data["problem"];
 | 
						|
		$this->uploaded_at = $data["uploaded_at"];
 | 
						|
		$this->version = isset($data["version"]) ? $data["version"] : 1;
 | 
						|
	}
 | 
						|
 | 
						|
	public function getFileId()
 | 
						|
	{
 | 
						|
		return $this->file_id;
 | 
						|
	}
 | 
						|
 | 
						|
	public function getTeamId()
 | 
						|
	{
 | 
						|
		return $this->team_id;
 | 
						|
	}
 | 
						|
 | 
						|
	public function getTournamentId()
 | 
						|
	{
 | 
						|
		return $this->tournament_id;
 | 
						|
	}
 | 
						|
 | 
						|
	public function getProblem()
 | 
						|
	{
 | 
						|
		return $this->problem;
 | 
						|
	}
 | 
						|
 | 
						|
	public function getUploadedAt()
 | 
						|
	{
 | 
						|
		return $this->uploaded_at;
 | 
						|
	}
 | 
						|
 | 
						|
	public function getVersion()
 | 
						|
	{
 | 
						|
		return $this->version;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
class Synthesis
 | 
						|
{
 | 
						|
	private $file_id;
 | 
						|
	private $team_id;
 | 
						|
	private $tournament_id;
 | 
						|
	private $dest;
 | 
						|
	private $uploaded_at;
 | 
						|
	private $version;
 | 
						|
 | 
						|
	private function __construct() {}
 | 
						|
 | 
						|
	public static function fromId($id)
 | 
						|
	{
 | 
						|
		global $DB;
 | 
						|
		$req = $DB->prepare("SELECT * FROM `syntheses` WHERE `file_id` = ?;");
 | 
						|
		$req->execute([htmlspecialchars($id)]);
 | 
						|
		$data = $req->fetch();
 | 
						|
 | 
						|
		if ($data === false)
 | 
						|
			return null;
 | 
						|
 | 
						|
		return self::fromData($data);
 | 
						|
	}
 | 
						|
 | 
						|
	public static function fromData($data)
 | 
						|
	{
 | 
						|
		$synthese = new Synthesis();
 | 
						|
		$synthese->fill($data);
 | 
						|
		return $synthese;
 | 
						|
	}
 | 
						|
 | 
						|
	private function fill($data)
 | 
						|
	{
 | 
						|
		$this->file_id = $data["file_id"];
 | 
						|
		$this->team_id = $data["team"];
 | 
						|
		$this->tournament_id = $data["tournament"];
 | 
						|
		$this->dest = DestType::fromName($data["dest"]);
 | 
						|
		$this->uploaded_at = $data["uploaded_at"];
 | 
						|
		$this->version = isset($data["version"]) ? $data["version"] : 1;
 | 
						|
	}
 | 
						|
 | 
						|
	public function getFileId()
 | 
						|
	{
 | 
						|
		return $this->file_id;
 | 
						|
	}
 | 
						|
 | 
						|
	public function getTeamId()
 | 
						|
	{
 | 
						|
		return $this->team_id;
 | 
						|
	}
 | 
						|
 | 
						|
	public function getTournamentId()
 | 
						|
	{
 | 
						|
		return $this->tournament_id;
 | 
						|
	}
 | 
						|
 | 
						|
	public function getDest()
 | 
						|
	{
 | 
						|
		return $this->dest;
 | 
						|
	}
 | 
						|
 | 
						|
	public function getUploadedAt()
 | 
						|
	{
 | 
						|
		return $this->uploaded_at;
 | 
						|
	}
 | 
						|
 | 
						|
	public function getVersion()
 | 
						|
	{
 | 
						|
		return $this->version;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
class DestType
 | 
						|
{
 | 
						|
	const DEFENSEUR = 0;
 | 
						|
	const OPPOSANT = 1;
 | 
						|
	const RAPPORTEUR = 2;
 | 
						|
 | 
						|
	public static function getTranslatedName($status) {
 | 
						|
		switch ($status) {
 | 
						|
			case self::OPPOSANT:
 | 
						|
				return "Opposant";
 | 
						|
			case self::RAPPORTEUR:
 | 
						|
				return "Rapporteur";
 | 
						|
			default:
 | 
						|
				return "Défenseur";
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	public static function getName($status) {
 | 
						|
		switch ($status) {
 | 
						|
			case self::OPPOSANT:
 | 
						|
				return "OPPOSANT";
 | 
						|
			case self::RAPPORTEUR:
 | 
						|
				return "RAPPORTEUR";
 | 
						|
			default:
 | 
						|
				return "DEFENSEUR";
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	public static function fromName($name) {
 | 
						|
		switch ($name) {
 | 
						|
			case "OPPOSANT":
 | 
						|
				return self::OPPOSANT;
 | 
						|
			case "RAPPORTEUR":
 | 
						|
				return self::RAPPORTEUR;
 | 
						|
			default:
 | 
						|
				return self::DEFENSEUR;
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
class DocumentType
 | 
						|
{
 | 
						|
	const PARENTAL_CONSENT = 0;
 | 
						|
	const PHOTO_CONSENT = 1;
 | 
						|
	const SANITARY_PLUG = 2;
 | 
						|
	const SOLUTION = 3;
 | 
						|
	const SYNTHESIS = 4;
 | 
						|
	const SCHOLARSHIP = 5;
 | 
						|
	const MOTIVATION_LETTER = 6;
 | 
						|
 | 
						|
	public static function getTranslatedName($type) {
 | 
						|
		switch ($type) {
 | 
						|
			case self::PARENTAL_CONSENT:
 | 
						|
				return "Autorisation parentale";
 | 
						|
			case self::PHOTO_CONSENT:
 | 
						|
				return "Autorisation de droit à l'image";
 | 
						|
			case self::SANITARY_PLUG:
 | 
						|
				return "Fiche sanitaire";
 | 
						|
            case self::SCHOLARSHIP:
 | 
						|
                return "Notification de bourse";
 | 
						|
			case self::MOTIVATION_LETTER:
 | 
						|
				return "Lettre de motivation";
 | 
						|
			case self::SOLUTION:
 | 
						|
				return "Solution";
 | 
						|
			default:
 | 
						|
				return "Note de synthèse";
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	public static function getName($type) {
 | 
						|
		switch ($type) {
 | 
						|
			case self::PARENTAL_CONSENT:
 | 
						|
				return "PARENTAL_CONSENT";
 | 
						|
			case self::PHOTO_CONSENT:
 | 
						|
				return "PHOTO_CONSENT";
 | 
						|
			case self::SANITARY_PLUG:
 | 
						|
				return "SANITARY_PLUG";
 | 
						|
            case self::SCHOLARSHIP:
 | 
						|
                return "SCHOLARSHIP";
 | 
						|
			case self::MOTIVATION_LETTER:
 | 
						|
				return "MOTIVATION_LETTER";
 | 
						|
			case self::SOLUTION:
 | 
						|
				return "SOLUTION";
 | 
						|
			default:
 | 
						|
				return "SYNTHESIS";
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	public static function fromName($name) {
 | 
						|
		switch ($name) {
 | 
						|
			case "PARENTAL_CONSENT":
 | 
						|
				return self::PARENTAL_CONSENT;
 | 
						|
			case "PHOTO_CONSENT":
 | 
						|
				return self::PHOTO_CONSENT;
 | 
						|
			case "SANITARY_PLUG":
 | 
						|
				return self::SANITARY_PLUG;
 | 
						|
            case "SCHOLARSHIP":
 | 
						|
                return self::SCHOLARSHIP;
 | 
						|
			case "MOTIVATION_LETTER":
 | 
						|
				return self::MOTIVATION_LETTER;
 | 
						|
			case "SOLUTION":
 | 
						|
				return self::SOLUTION;
 | 
						|
			default:
 | 
						|
				return self::SYNTHESIS;
 | 
						|
		}
 | 
						|
	}
 | 
						|
} |