Passed
Push — main ( f1b4ad...6ccac6 )
by N.
04:46
created

Utdelningsdata   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 18
dl 0
loc 43
ccs 15
cts 15
cp 1
rs 10
c 0
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 1 1
A utdelningsdata() 0 18 1
1
<?php
2
3
/**
4
 * Klass Utdelningsdata.
5
 * @author Niklas Dougherty
6
 */
7
8
declare(strict_types=1);
9
10
namespace Tips\Klasser\Utdelning;
11
12
use PDO;
13
use Tips\Klasser\Spel;
14
15
/**
16
 * Klass Utdelningsdata.
17
 */
18
class Utdelningsdata {
19
	public int $år = 0;
20
	public int $vecka = 0;
21
	public string $tipsrad = ''; // tecken 1X2
22
	public string $tipsrad_012 = ''; // numerisk motsvarighet 012
23
	public bool $har_tipsrad = false;
24
	/**
25
	 * @var int[] $utdelning
26
	 */
27
	public array $utdelning = [0, 0, 0, 0]; // 13, 12, 11, 10 r
28
	/**
29
	 * @var int[] $vinnare
30
	 */
31
	public array $vinnare = [0, 0, 0, 0];
32
33
	/**
34
	 * Initiera.
35
	 */
36 14
	public function __construct(public Spel $spel) {
37 14
	}
38
39
	/**
40
	 * Hämta utdelningsdata.
41
	 * @return array<string, int>
42
	 */
43 1
	public function utdelningsdata(int $u13_min = 0, int $u13_max = MAXVINST): array {
44 1
		$utdelningsdata = [];
45 1
		$sats = $this->spel->db->instans->prepare("SELECT `omgång`, `u13` FROM `utdelning`
46 1
			WHERE `tipsrad_012` AND `u13` BETWEEN :u13_min AND :u13_max");
47 1
		$sats->bindValue(':u13_min', $u13_min, PDO::PARAM_INT);
48 1
		$sats->bindValue(':u13_max', $u13_max, PDO::PARAM_INT);
49 1
		$sats->execute();
50
51
		/**
52
		 * Populera utdelningsdata.
53
		 */
54 1
		array_map(
55 1
			fn ($rad): int =>
56 1
			$utdelningsdata[(string) $rad['omgång']] = (int) $rad['u13'],
57 1
			$sats->fetchAll(PDO::FETCH_ASSOC)
58 1
		);
59
60 1
		return $utdelningsdata;
61
	}
62
}
63