1<?php
2
3// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the GNU Affero General Public License v3.0.
4// See the LICENCE file in the repository root for full licence text.
5
6namespace App\Models;
7
8/**
9 * @property Beatmap $beatmap
10 * @property int $beatmap_id
11 * @property mixed $data
12 * @property int $p1
13 * @property int $p10
14 * @property int $p100
15 * @property int $p11
16 * @property int $p12
17 * @property int $p13
18 * @property int $p14
19 * @property int $p15
20 * @property int $p16
21 * @property int $p17
22 * @property int $p18
23 * @property int $p19
24 * @property int $p2
25 * @property int $p20
26 * @property int $p21
27 * @property int $p22
28 * @property int $p23
29 * @property int $p24
30 * @property int $p25
31 * @property int $p26
32 * @property int $p27
33 * @property int $p28
34 * @property int $p29
35 * @property int $p3
36 * @property int $p30
37 * @property int $p31
38 * @property int $p32
39 * @property int $p33
40 * @property int $p34
41 * @property int $p35
42 * @property int $p36
43 * @property int $p37
44 * @property int $p38
45 * @property int $p39
46 * @property int $p4
47 * @property int $p40
48 * @property int $p41
49 * @property int $p42
50 * @property int $p43
51 * @property int $p44
52 * @property int $p45
53 * @property int $p46
54 * @property int $p47
55 * @property int $p48
56 * @property int $p49
57 * @property int $p5
58 * @property int $p50
59 * @property int $p51
60 * @property int $p52
61 * @property int $p53
62 * @property int $p54
63 * @property int $p55
64 * @property int $p56
65 * @property int $p57
66 * @property int $p58
67 * @property int $p59
68 * @property int $p6
69 * @property int $p60
70 * @property int $p61
71 * @property int $p62
72 * @property int $p63
73 * @property int $p64
74 * @property int $p65
75 * @property int $p66
76 * @property int $p67
77 * @property int $p68
78 * @property int $p69
79 * @property int $p7
80 * @property int $p70
81 * @property int $p71
82 * @property int $p72
83 * @property int $p73
84 * @property int $p74
85 * @property int $p75
86 * @property int $p76
87 * @property int $p77
88 * @property int $p78
89 * @property int $p79
90 * @property int $p8
91 * @property int $p80
92 * @property int $p81
93 * @property int $p82
94 * @property int $p83
95 * @property int $p84
96 * @property int $p85
97 * @property int $p86
98 * @property int $p87
99 * @property int $p88
100 * @property int $p89
101 * @property int $p9
102 * @property int $p90
103 * @property int $p91
104 * @property int $p92
105 * @property int $p93
106 * @property int $p94
107 * @property int $p95
108 * @property int $p96
109 * @property int $p97
110 * @property int $p98
111 * @property int $p99
112 * @property mixed $type
113 */
114class BeatmapFailtimes extends Model
115{
116 public $incrementing = false;
117 public $timestamps = false;
118
119 protected $primaryKey = ':composite';
120 protected $primaryKeys = ['beatmap_id', 'type'];
121 protected $table = 'osu_beatmap_failtimes';
122
123 public function beatmap()
124 {
125 return $this->belongsTo(Beatmap::class, 'beatmap_id');
126 }
127
128 public function getDataAttribute()
129 {
130 $data = [];
131
132 $attributes = $this->getAttributes();
133 for ($i = 1; $i <= 100; $i++) {
134 $data[] = $attributes["p{$i}"] ?? 0;
135 }
136
137 return $data;
138 }
139}