<?php
namespace Claromentis\Core\ORM;

$GLOBALS["__65da1b1" . "ec2d6653e" . "8a0ab7848" . "e536215"] = (@$GLOBALS["__65da1b1ec2d6653e8a0ab7848e536" . "215"] ?: array()) + array("_075c6c4172eaf58cfa84828" . "a3582d19a" => base64_decode("YXJyYXlfdW" . "5pcXVl"), "_3741aa6c67a2aa9a8d50735e1bc98" . "de0" => base64_decode("IG11c3QgYXQgbGVhc3Q" . "gaGF2ZSAxIGFyZ3VtZW" . "50"), "_31767d7ad58e706dbf47b7a51a0" . "fe6c4" => base64_decode("Y2" . "91" . "bn" . "Q="), "_d706c160e45b" . "f7434fff82a59" . "76f0e19" => base64_decode("YXJyYXl" . "fa2V5cw" . "=="), "_8226805203" . "27e9387ae2d" . "5c065ea52e1" => base64_decode("YXJyY" . "XlfZm" . "xpcA=" . "="), "_ae76ef2" . "7ae5b487" . "57f71a20" . "2718b5e5" . "e" => base64_decode("Y2FsbF91" . "c2VyX2Z1" . "bmNfYXJy" . "YXk="));
use Analogue\ORM\System\Cache\AttributeCache;
use Analogue\ORM\System\Cache\InstanceCache;
use Analogue\ORM\System\Mapper as AnalogueMapper;
use Analogue\ORM\System\ScopeInterface;
use BadMethodCallException;
use Illuminate\Support\Collection;










class Mapper extends AnalogueMapper
{
    
    
    
    
    protected $mapper;
    
    
    
    
    
    public function __construct(AnalogueMapper $_dabd1eb8030f2c29327a192cddfd85a9)
    {
        $this->mapper = $_dabd1eb8030f2c29327a192cddfd85a9;
    }
    public function map($_b4af1f7aa1ccde1a449e9d8afe15b753, array $_fc95af5b7edc17bbd70915ea61632fc5 = [], $_03d1867e96fe3e3b47b3bc0a1d88f534 = false) : Collection
    {
        return $this->mapper->map($_b4af1f7aa1ccde1a449e9d8afe15b753, $_fc95af5b7edc17bbd70915ea61632fc5, $_03d1867e96fe3e3b47b3bc0a1d88f534);
    }
    public function all()
    {
        return $this->mapper->all();
    }
    public function store($_ba1f6e266e3ebd29f620349be8ec92a5)
    {
        return $this->mapper->store($_ba1f6e266e3ebd29f620349be8ec92a5);
    }
    public function newQueryBuilder()
    {
        return $this->mapper->newQueryBuilder();
    }
    public function delete($_ba1f6e266e3ebd29f620349be8ec92a5)
    {
        return $this->mapper->delete($_ba1f6e266e3ebd29f620349be8ec92a5);
    }
    public function getEntityMap()
    {
        return $this->mapper->getEntityMap();
    }
    public function getEntityCache() : AttributeCache
    {
        return $this->mapper->getEntityCache();
    }
    public function getInstanceCache() : InstanceCache
    {
        return $this->mapper->getInstanceCache();
    }
    public function clearCache()
    {
        $this->mapper->clearCache();
    }
    public function fireEvent($event, $_ba1f6e266e3ebd29f620349be8ec92a5, $_1dfb208f5ef50e0d55cc68c5c1fd989b = true)
    {
        return $this->mapper->fireEvent($event, $_ba1f6e266e3ebd29f620349be8ec92a5, $_1dfb208f5ef50e0d55cc68c5c1fd989b);
    }
    public function registerEvent($event, $_5c51b0e4b7267b43adabf8015a8e1cf8)
    {
        $this->mapper->registerEvent($event, $_5c51b0e4b7267b43adabf8015a8e1cf8);
    }
    public function addCustomEvent(string $name, string $_35ed77ccccaf3a056dcf16acae33bbe0)
    {
        $this->mapper->addCustomEvent($name, $_35ed77ccccaf3a056dcf16acae33bbe0);
    }
    public function addGlobalScope(ScopeInterface $_8c618b28cb8e33e9ba8b291781620142)
    {
        $this->mapper->addGlobalScope($_8c618b28cb8e33e9ba8b291781620142);
    }
    public function hasGlobalScope($_8c618b28cb8e33e9ba8b291781620142)
    {
        return $this->mapper->hasGlobalScope($_8c618b28cb8e33e9ba8b291781620142);
    }
    public function getGlobalScope($_8c618b28cb8e33e9ba8b291781620142)
    {
        return $this->mapper->getGlobalScope($_8c618b28cb8e33e9ba8b291781620142);
    }
    public function newQueryWithoutScope($_8c618b28cb8e33e9ba8b291781620142)
    {
        return $this->mapper->newQueryWithoutScope($_8c618b28cb8e33e9ba8b291781620142);
    }
    public function applyGlobalScopes($_7f5aa4e96d4b415a86ed72ebff677cbe)
    {
        return $this->mapper->applyGlobalScopes($_7f5aa4e96d4b415a86ed72ebff677cbe);
    }
    public function getGlobalScopes()
    {
        return $this->mapper->getGlobalScopes();
    }
    public function addCustomCommand($_bf75f3171600919f3a2abc2fe54988aa)
    {
        $this->mapper->addCustomCommand($_bf75f3171600919f3a2abc2fe54988aa);
    }
    public function newInstance()
    {
        return $this->mapper->newInstance();
    }
    public function globalQuery()
    {
        return $this->mapper->globalQuery();
    }
    public function newQueryWithoutScopes()
    {
        return $this->mapper->newQueryWithoutScopes();
    }
    public function removeGlobalScopes($_7f5aa4e96d4b415a86ed72ebff677cbe)
    {
        return $this->mapper->removeGlobalScopes($_7f5aa4e96d4b415a86ed72ebff677cbe);
    }
    public function getManager()
    {
        return $this->mapper->getManager();
    }
    public function __call($_078bca5211423d2c2e21b46fce078e6b, $_1403528d44504acbeae423595d0a3297)
    {
        
        
        if ($this->hasCustomCommand($_078bca5211423d2c2e21b46fce078e6b)) {
            if ($GLOBALS["__65da1b1ec2d6653e8a0ab7848e5" . "36215"]["_31767d7ad58e706dbf47b" . "7a51a0fe6c4"]($_1403528d44504acbeae423595d0a3297) == 0) {
                throw new BadMethodCallException($_078bca5211423d2c2e21b46fce078e6b . $GLOBALS["__65da1b1ec2d6653e8a0ab7848e" . "536215"]["_3741aa6c67a2aa9a8d50735e1bc9" . "8de0"]);
            }
            return $this->executeCustomCommand($_078bca5211423d2c2e21b46fce078e6b, $_1403528d44504acbeae423595d0a3297[0]);
        }
        
        
        return $GLOBALS["__65da1b1ec2d6653e8a0ab7848e5" . "36215"]["_ae76ef27ae5b48757" . "f71a202718b5e5e"]([$this->query(), $_078bca5211423d2c2e21b46fce078e6b], $_1403528d44504acbeae423595d0a3297);
    }
    public function hasCustomCommand($_bf75f3171600919f3a2abc2fe54988aa)
    {
        return $this->mapper->hasCustomCommand($_bf75f3171600919f3a2abc2fe54988aa);
    }
    public function getCustomCommands()
    {
        return $this->mapper->getCustomCommands();
    }
    public function executeCustomCommand($_bf75f3171600919f3a2abc2fe54988aa, $_ba1f6e266e3ebd29f620349be8ec92a5)
    {
        return $this->mapper->executeCustomCommand($_bf75f3171600919f3a2abc2fe54988aa, $_ba1f6e266e3ebd29f620349be8ec92a5);
    }
    public function getQuery()
    {
        $_7f5aa4e96d4b415a86ed72ebff677cbe = new Query($this, $this->mapper->adapter);
        return $this->mapper->applyGlobalScopes($_7f5aa4e96d4b415a86ed72ebff677cbe);
    }
    
    
    
    
    
    
    
    public function getColumnName(string $_3ab4cb54392757321b19c0165e9e4203) : string
    {
        return $this->getColumnNames([$_3ab4cb54392757321b19c0165e9e4203])[0];
    }
    
    
    
    
    
    
    
    
    
    public function getColumnNames(array $attributes) : array
    {
        $_7bf14ccb9bebab3964c83c16c77505c6 = $this->getEntityMap();
        
        
        
        $attributes = $GLOBALS["__65da1b1ec2d6653e8a0ab7848e" . "536215"]["_822680520327e9387" . "ae2d5c065ea52e1"]($GLOBALS["__65da1b1ec2d6653e8a0ab7848" . "e536215"]["_075c6c4172e" . "af58cfa84828" . "a3582d19a"]($attributes));
        return $GLOBALS["__65da1b1ec2d6653e8a0ab7848e53621" . "5"]["_d706c160e45bf7434" . "fff82a5976f0e19"]($_7bf14ccb9bebab3964c83c16c77505c6->getColumnNamesFromAttributes($attributes));
    }
    
    
    
    
    
    
    
    public function getAttributeName(string $_16e904583014a98ae3677f33f097518d) : string
    {
        return $this->getAttributeNames([$_16e904583014a98ae3677f33f097518d])[0];
    }
    
    
    
    
    
    
    
    
    
    public function getAttributeNames(array $_a42c86642011ef739b88ee80672c387d) : array
    {
        $_7bf14ccb9bebab3964c83c16c77505c6 = $this->getEntityMap();
        
        
        
        $_a42c86642011ef739b88ee80672c387d = $GLOBALS["__65da1b1ec" . "2d6653e8a0a" . "b7848e53621" . "5"]["_822680520327e9387ae2d5c06" . "5ea52e1"]($GLOBALS["__65da1b1ec2d6653e8a0a" . "b7848e536215"]["_075c6c4172eaf58cfa84828a3582d19" . "a"]($_a42c86642011ef739b88ee80672c387d));
        return $GLOBALS["__65da1b1ec2d6653e" . "8a0ab7848e536215"]["_d706c160e45bf7434fff82a" . "5976f0e19"]($_7bf14ccb9bebab3964c83c16c77505c6->getAttributeNamesFromColumns($_a42c86642011ef739b88ee80672c387d));
    }
}