12namespace ComusParty\Models;
15use DateMalformedStringException;
66 foreach ($datas as $data) {
67 $penalties[] = $this->
hydrate($data);
81 $penalty->setId($data[
'id']);
82 $penalty->setCreatedBy($data[
'created_by']);
83 $penalty->setCancelledBy($data[
'cancelled_by']);
84 $penalty->setPenalizedUuid($data[
'penalized_uuid']);
85 $penalty->setReason($data[
'reason']);
86 $penalty->setDuration($data[
'duration']);
87 $penalty->setCreatedAt(
new DateTime($data[
'created_at']));
88 $penalty->setUpdatedAt(
new DateTime($data[
'updated_at']));
99 $stmt = $this->pdo->prepare(
"INSERT INTO " .
DB_PREFIX .
"penalty (created_by, penalized_uuid, reason, duration, type, created_at, updated_at) VALUES (:created_by, :penalized_uuid, :reason, :duration, :type, :created_at, :updated_at)");
106 $createdAt = $penalty->
getCreatedAt()->format(
'Y-m-d H:i:s');
107 $updatedAt = $penalty->
getUpdatedAt()->format(
'Y-m-d H:i:s');
109 $stmt->bindParam(
":created_by", $createdBy);
110 $stmt->bindParam(
":penalized_uuid", $penalizedUuid);
111 $stmt->bindParam(
":reason", $reason);
112 $stmt->bindParam(
":duration", $duration);
113 $stmt->bindParam(
":type", $penaltyType);
114 $stmt->bindParam(
":created_at", $createdAt);
115 $stmt->bindParam(
":updated_at", $updatedAt);
117 return $stmt->execute();
127 return match ($penaltyType) {
129 PenaltyType::BANNED =>
'banned',
142 $stmt = $this->pdo->prepare(
"SELECT * FROM " .
DB_PREFIX .
"penalty WHERE penalized_uuid = :penalized_uuid AND type = 'muted' ORDER BY created_at DESC LIMIT 1");
143 $stmt->bindParam(
":penalized_uuid", $playerUuid);
145 $data = $stmt->fetch();
146 if ($data ===
false) {
160 $stmt = $this->pdo->prepare(
"SELECT * FROM " .
DB_PREFIX .
"penalty WHERE penalized_uuid = :penalized_uuid ORDER BY created_at DESC LIMIT 1");
161 $stmt->bindParam(
":penalized_uuid", $playerUuid);
163 $data = $stmt->fetch();
164 if ($data ===
false) {
findLastPenaltyByPlayerUuid(string $playerUuid)
Trouve la dernière sanction d'un joueur.
hydrate(array $data)
Hydrate un tableau de données en objet Penalty.
getPdo()
Retourne la connexion à la base de données.
transformPenaltyTypeToString(?PenaltyType $penaltyType)
Transforme un type de sanction en string.
createPenalty(Penalty $penalty)
Créer une sanction en base de données.
hydrateMany(array $datas)
Hydrate un tableau de données en objets Penalty.
setPdo(?PDO $pdo)
Modifie la connexion à la base de données.
__construct(?PDO $pdo)
Le constructeur de la classe PenaltyDAO.
findLastMutedByPlayerUuid(string $playerUuid)
Trouve la dernière sanction d'un joueur de type muted.
getCreatedAt()
Retourne la date de création de la sanction.
getCreatedBy()
Retourne l'identifiant du modérateur ayant créé la sanction.
getPenalizedUuid()
Retourne l'identifiant du joueur sanctionné
getUpdatedAt()
Retourne la date de mise à jour de la sanction.
getType()
Retourne le type de la sanction.
getDuration()
Retourne la durée de la sanction.
getReason()
Retourne la raison de la sanction.
PenaltyType
Enumération des types de sanctions.
@ MUTED
Le joueur est banni de la plateforme.
const DB_PREFIX
Préfixe des tables de la base de données.