Passed
Push — master ( 10a915...0d23d6 )
by Mattia
08:28 queued 11s
created

AccountStats::getLastUsers()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 9
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 4
rs 9.9666
1
<?php
2
3
declare(strict_types=1);
4
5
namespace App\Models;
6
7
use Illuminate\Database\Eloquent\Model;
8
use Illuminate\Support\Facades\DB;
9
10
/**
11
 * Class AccountsStats.
12
 *
13
 * @property string $uuid
14
 * @property int    $count_request
15
 * @property int    $count_search
16
 * @property int    $time_request
17
 * @property int    $time_search
18
 */
19
class AccountStats extends Model
20
{
21
    /**
22
     * Table name.
23
     *
24
     * @var string
25
     */
26
    protected $table = 'accounts_stats';
27
28
    /**
29
     * Primary key.
30
     *
31
     * @var string
32
     */
33
    protected $primaryKey = 'uuid';
34
35
    /**
36
     * No primary key.
37
     *
38
     * @var bool
39
     */
40
    public $incrementing = false;
41
42
    /**
43
     * @var bool
44
     */
45
    public $timestamps = false;
46
47
    /**
48
     * @var array
49
     */
50
    protected $fillable = [
51
        'uuid',
52
        'count_request',
53
        'count_search',
54
        'time_request',
55
        'time_search'
56
    ];
57
58
    /**
59
     * Get most wanted users.
60
     *
61
     * @return mixed
62
     */
63
    public static function getMostWanted()
64
    {
65
        $default_uuid = env('DEFAULT_UUID');
66
67
        return DB::select(
68
            "SELECT a.`uuid`, a.`username`, s.`count_request`
69
             FROM (
70
              SELECT `uuid`, `count_request` FROM `accounts_stats`
71
              WHERE `uuid` != '{$default_uuid}'
72
              ORDER BY `count_request` DESC
73
              LIMIT 14
74
            ) s
75
            INNER JOIN `accounts` AS a USING(`uuid`)
76
            ORDER BY s.`count_request` DESC"
77
        );
78
    }
79
80
    /**
81
     * Get last users.
82
     *
83
     * @return mixed
84
     */
85
    public static function getLastUsers()
86
    {
87
        return DB::select(
88
            'SELECT a.`uuid`, a.`username`, s.`count_request`
89
              FROM (
90
                SELECT `uuid`, `count_request` FROM `accounts_stats`
91
                ORDER BY `time_request` DESC
92
                LIMIT 9
93
              ) s
94
            INNER JOIN `accounts` a USING(`uuid`)
95
            ORDER BY s.`count_request` DESC'
96
        );
97
    }
98
}
99