mirror of
https://github.com/slawkens/myaac.git
synced 2025-04-27 17:59:22 +02:00

* wip * wip * wip * wip * wip * fix: reusing pdo connection from pot * wip * wip * wip * wip * move files In future, all classes will be in src/ folder * Replace namespace name, for future * Remove duplicated exception * Fix towns from db * Fix spells page * Add default FAQ question + FAQ model * feat: reset colors in menus * Add confirm + save button at the top (menus) * Do not insert duplicated FAQ on install * Refactor install menus * Fix changelogs showing * Fix menu update, only with specified template name * Fix account create -> missing compat * Fix bans_per_page * banned_by is player_id. type = 2 is namelock in tfs 0.3 * Add getPlayerNameById, fix getPlayerNameByAccount * Change link name * Order by lastlogin * fix: query optimize * wip * wip * wip * wip * wip * wip * wip * Refactor notepad.php, class was useless * This is showing error, if the updated rows = 0 * Fix success & error class (bootstrap) * Uncomment require migrate.php * Some distro have owner_id * Update Player.php --------- Co-authored-by: slawkens <slawkens@gmail.com>
70 lines
1.6 KiB
PHP
70 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace MyAAC\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
class Account extends Model {
|
|
|
|
protected $table = 'accounts';
|
|
|
|
public $timestamps = false;
|
|
|
|
protected $casts = [
|
|
'lastday' => 'integer',
|
|
'premdays' => 'integer',
|
|
'premend' => 'integer',
|
|
'premium_ends_at' => 'integer',
|
|
];
|
|
|
|
public function players()
|
|
{
|
|
return $this->hasMany(Player::class);
|
|
}
|
|
|
|
public function viplist()
|
|
{
|
|
return $this->hasMany(AccountVipList::class);
|
|
}
|
|
|
|
public function getPremiumDaysAttribute()
|
|
{
|
|
if(isset($this->premium_ends_at) || isset($this->premend)) {
|
|
$col = isset($this->premium_ends_at) ? 'premium_ends_at' : 'premend';
|
|
$ret = ceil(($this->{$col}- time()) / (24 * 60 * 60));
|
|
return $ret > 0 ? $ret : 0;
|
|
}
|
|
|
|
if($this->premdays == 0) {
|
|
return 0;
|
|
}
|
|
|
|
global $config;
|
|
if(isset($config['lua']['freePremium']) && getBoolean($config['lua']['freePremium'])) return -1;
|
|
|
|
if($this->premdays == 65535){
|
|
return 65535;
|
|
}
|
|
|
|
$ret = ceil($this->premdays - (date("z", time()) + (365 * (date("Y", time()) - date("Y", $this->lastday))) - date("z", $this->lastday)));
|
|
return $ret > 0 ? $ret : 0;
|
|
}
|
|
|
|
public function getIsPremiumAttribute()
|
|
{
|
|
global $config;
|
|
if(isset($config['lua']['freePremium']) && getBoolean($config['lua']['freePremium'])) return true;
|
|
|
|
if(isset($this->premium_ends_at)) {
|
|
return $this->premium_ends_at > time();
|
|
}
|
|
|
|
if(isset($this->premend)) {
|
|
return $this->premend > time();
|
|
}
|
|
|
|
return ($this->premdays - (date("z", time()) + (365 * (date("Y", time()) - date("Y", $this->lastday))) - date("z", $this->lastday)) > 0);
|
|
}
|
|
|
|
}
|