uid = $uid; } public static function new(array $user, string $vals, string $vars, int $time = 0): void { if (!$time) { $time = time(); } Db::sql( 'insert into actions (uid, time, city, room, vars, ip, vals, val) values (?,?,?,?,?,?,?,?)', [ $user['id'], $time, $user['city'], $user['room'], $vars, UserIp::get(), $vals, '', ] ); } public static function getAll(string $filter = ''): array { return Db::getRows('select * from actions'); } public function getByVals(string $vals) { return Db::getRow('select * from actions where uid = ? and vals = ?', [$this->uid, $vals]); } public function getLastByVals(string $vals) { return Db::getRow( 'select * from actions where uid = ? and vals = ? order by time desc limit 1', [$this->uid, $vals] ); } public function getLastByValsAndTime(string $vals, int $time) { return Db::getRow( 'select * from actions where uid = ? and vals = ? and time > unix_timestamp() - ? order by time desc limit 1', [$this->uid, $vals, $time] ); } public function deleteByVals(string $vals): void { Db::sql('delete from actions where uid = ? and vals = ?', [$this->uid, $vals]); } public static function deleteById(int $id): void { Db::sql('delete from actions where id = ?', [$id]); } /*protected function testAction($filter, $tp): array { if ($tp == 1) { $query = 'select * from actions where ' . $filter; } elseif ($tp == 2) { $query = 'select count(*) from actions where ' . $filter; } else { return []; } $arr = mysql_fetch_array(mysql_query($query)); return !empty($arr) ? $arr : []; }*/ public function getDailyQuest(): array|false { return Db::getRow("select * from actions where uid = ? and vars = 'day_quest' limit 1", [$this->uid]); } public function getFinishedDailyQuestTasks(int $timeout): array { $arr = []; $counter = Db::getRows( "select count(*) as c, vars from actions where vars in ('end_trup', 'end_xaot', 'psh0', 'trup_sun', 'izlom', 'win') and time > ? and uid = ? group by vars", [$timeout, $this->uid] ); foreach ($counter as $c) { $arr[$c['vars']] = $c['c']; } return $arr; } }