<?php
declare(strict_types=1);

namespace OCA\GPodderSync\Core\PodcastData;

use JsonSerializable;

class PodcastActionCounts implements JsonSerializable {
	private int $delete = 0;
	private int $download = 0;
	private int $flattr = 0;
	private int $new = 0;
	private int $play = 0;

	/**
	 * @param string $action
	 */
	public function incrementAction(string $action): void {
		switch ($action) {
			case 'delete': $this->delete++; break;
			case 'download': $this->download++; break;
			case 'flattr': $this->flattr++; break;
			case 'new': $this->new++; break;
			case 'play': $this->play++; break;
		}
	}

	/**
	 * @return array<string,int>
	 */
	public function toArray(): array {
		return [
			'delete' => $this->delete,
			'download' => $this->download,
			'flattr' => $this->flattr,
			'new' => $this->new,
			'play' => $this->play,
		];
	}

	/**
	 * @return array<string,int>
	 */
	public function jsonSerialize(): mixed {
		return $this->toArray();
	}
}