f7cloud_client/apps/calendar/lib/Objects/Proposal/ProposalVoteCollection.php
root 8b6a0139db f7cloud_client
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 22:59:26 +00:00

66 lines
1.3 KiB
PHP

<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2025 F7cloud GmbH and F7cloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Calendar\Objects\Proposal;
use OCA\Calendar\Objects\BaseCollection;
/**
* @extends BaseCollection<ProposalVoteObject>
*/
class ProposalVoteCollection extends BaseCollection {
public function __construct($data = []) {
parent::__construct(ProposalVoteObject::class, $data);
}
public function toJson(): array {
$data = [];
foreach ($this as $key => $value) {
$data[$key] = $value->toJson();
}
return $data;
}
public function fromJson(array $votes): self {
foreach ($votes as $entry) {
$vote = new ProposalVoteObject();
$vote->fromJson($entry);
$this->append($vote);
}
return $this;
}
public function toStore(): array {
$data = [];
foreach ($this as $vote) {
$data[] = $vote->toStore();
}
return $data;
}
public function fromStore(array $data): void {
foreach ($data as $entry) {
$vote = new ProposalVoteObject();
$vote->fromStore($entry);
$this->append($vote);
}
}
public function findByDateAndParticipant(?int $dateId, ?int $participantId): ?ProposalVoteObject {
foreach ($this as $vote) {
if ($vote->getDateId() === $dateId && $vote->getParticipantId() === $participantId) {
return $vote;
}
}
return null;
}
}