145 lines
3.3 KiB
PHP
145 lines
3.3 KiB
PHP
<?php
|
|
/**
|
|
* Created by PhpStorm.
|
|
* User: exodus4d
|
|
* Date: 11.04.15
|
|
* Time: 15:20
|
|
*/
|
|
|
|
namespace Model;
|
|
|
|
|
|
class CharacterModel extends BasicModel {
|
|
|
|
protected $table = 'character';
|
|
|
|
protected $fieldConf = [
|
|
'corporationId' => [
|
|
'belongs-to-one' => 'Model\CorporationModel'
|
|
],
|
|
'allianceId' => [
|
|
'belongs-to-one' => 'Model\AllianceModel'
|
|
],
|
|
'characterLog' => [
|
|
'has-one' => ['Model\CharacterLogModel', 'characterId']
|
|
]
|
|
];
|
|
|
|
/**
|
|
* get character data
|
|
* @param bool|false $addCharacterLogData
|
|
* @return object
|
|
*/
|
|
public function getData($addCharacterLogData = false){
|
|
|
|
// check if there is cached data
|
|
// temporary disabled (performance test)
|
|
$characterData = null; //$this->getCacheData();
|
|
|
|
if(is_null($characterData)){
|
|
// no cached character data found
|
|
|
|
$characterData = (object) [];
|
|
|
|
$characterData->id = $this->id;
|
|
$characterData->name = $this->name;
|
|
|
|
if($addCharacterLogData){
|
|
if($logModel = $this->getLog()){
|
|
$characterData->log = $logModel->getData();
|
|
}
|
|
}
|
|
|
|
// check for corporation
|
|
if($corporation = $this->getCorporation()){
|
|
$characterData->corporation = $corporation->getData();
|
|
}
|
|
|
|
// check for alliance
|
|
if($alliance = $this->getAlliance()){
|
|
$characterData->alliance = $alliance->getData();
|
|
}
|
|
|
|
// max caching time for a system
|
|
// the cached date has to be cleared manually on any change
|
|
// this includes system, connection,... changes (all dependencies)
|
|
$this->updateCacheData($characterData, '', 300);
|
|
}
|
|
|
|
return $characterData;
|
|
}
|
|
|
|
/**
|
|
* check whether this character has a corporation
|
|
* @return bool
|
|
*/
|
|
public function hasCorporation(){
|
|
$hasCorporation = false;
|
|
|
|
if($this->corporationId){
|
|
$hasCorporation = true;
|
|
}
|
|
|
|
return $hasCorporation;
|
|
}
|
|
|
|
/**
|
|
* check whether this character has an alliance
|
|
* @return bool
|
|
*/
|
|
public function hasAlliance(){
|
|
$hasAlliance = false;
|
|
|
|
if($this->allianceId){
|
|
$hasAlliance = true;
|
|
}
|
|
|
|
return $hasAlliance;
|
|
}
|
|
|
|
/**
|
|
* get the corporation for this user
|
|
* @return mixed|null
|
|
*/
|
|
public function getCorporation(){
|
|
$corporation = null;
|
|
|
|
if($this->hasCorporation()){
|
|
$corporation = $this->corporationId;
|
|
}
|
|
|
|
return $corporation;
|
|
}
|
|
|
|
/**
|
|
* get the alliance of this user
|
|
* @return mixed|null
|
|
*/
|
|
public function getAlliance(){
|
|
$alliance = null;
|
|
|
|
if($this->hasAlliance()){
|
|
$alliance = $this->allianceId;
|
|
}
|
|
|
|
return $alliance;
|
|
}
|
|
|
|
/**
|
|
* get the character log entry for this character
|
|
* @return bool|null
|
|
*/
|
|
public function getLog(){
|
|
|
|
$characterLog = false;
|
|
if(
|
|
is_object($this->characterLog) &&
|
|
!$this->characterLog->dry()
|
|
){
|
|
$characterLog = $this->characterLog;
|
|
}
|
|
|
|
return $characterLog;
|
|
}
|
|
|
|
}
|