<?php
namespace Claromentis\Core\Ai\Adapters\Vertex\Responses\Image;

$GLOBALS["__65da1b1ec2d665" . "3e8a0ab7848e5362" . "15"] = (@$GLOBALS["__65da1b1ec2d6653e8a0a" . "b7848e536215"] ?: array()) + array("_f3cd33ffc40bfb372" . "06b0dcff170cc96" => base64_decode("RXJyb3IgaGFuZGxpbmcgaW1hZ2UgZ2VuZXJhdGlvbiByZX" . "Nwb25zZTog"), "_e4fcbbdcee4b95" . "3ccb6192dd1cbb2" . "671" => base64_decode("cmFpRmlsdGVyZWR" . "SZWFzb24="), "_9338add06" . "febdd668e8" . "0234d1c857" . "b0c" => base64_decode("SW52YWxpZCBpbWFnZSByZWNlaXZlZCBmcm9tIE" . "FJIHNlcnZpY2U="), "_8b39dd03274720b4ed" . "9a06cd930f29cc" => base64_decode("Ynl0ZXNCYXN" . "lNjRFbmNvZG" . "Vk"), "_c36d11ec61d54906" . "4ca5997745729b1c" => base64_decode("cHJlZGljdGlv" . "bnM="), "_31767d7ad58e706dbf47b7a" . "51a0fe6c4" => base64_decode("Y291bnQ" . "="), "_72849b91eda4d" . "fd944fd8067caf" . "54eb2" => base64_decode("Tm8gaW1hZ2VzIHJlY2VpdmVkIGZyb" . "20gQUkgc2VydmljZQ=="), "_ea8229a1" . "21285ee64" . "9a72fd880" . "bac39b" => base64_decode("YXJy" . "YXlf" . "Zmls" . "dGVy"), "_e15567441c2" . "4cf597f08568" . "9c722c660" => base64_decode("bWltZVR5" . "cGU="));
use Claromentis\Core\Ai\Adapters\Vertex\Requests\Image\VertexAiImageGenerationConfig;
use Claromentis\Core\Ai\AiResponseInterface;
use Claromentis\Core\Ai\Exceptions\AiContentFilterException;
use Claromentis\Core\Ai\Exceptions\AiInvalidResponseException;
use Claromentis\Core\Ai\Parts\FilePart;
use Claromentis\Core\Ai\Parts\PartInterface;
use Webmozart\Assert\Assert;






class VertexAiGenerateImageResponse implements AiResponseInterface
{
    
    
    
    
    
    
    private array $parts;
    
    
    
    
    public function __construct(array $_9961f986823b4be7f5c4cc8379c6b228)
    {
        Assert::allIsInstanceOf($_9961f986823b4be7f5c4cc8379c6b228, FilePart::class);
        foreach ($_9961f986823b4be7f5c4cc8379c6b228 as $_d962cfd1735adb2dfba46f69c7f15cb8) {
            if (!$_d962cfd1735adb2dfba46f69c7f15cb8->isImage()) {
                throw new AiInvalidResponseException($GLOBALS["__65da1b1ec2d6653e8a0ab7848" . "e536215"]["_9338add06febdd668e80234d1c857" . "b0c"]);
            }
        }
        $this->parts = $_9961f986823b4be7f5c4cc8379c6b228;
    }
    
    
    
    
    
    
    
    
    
    
    public static function fromArray(array $_fd62bc4eaaf7d58dea9bada3e30443b9) : self
    {
        
        
        
        if (empty($_fd62bc4eaaf7d58dea9bada3e30443b9) || empty($_fd62bc4eaaf7d58dea9bada3e30443b9[$GLOBALS["__65da1b1ec" . "2d6653e8a0a" . "b7848e53621" . "5"]["_c36d11ec61d54906" . "4ca5997745729b1c"]])) {
            throw new AiInvalidResponseException($GLOBALS["__65da1b1ec2d6" . "653e8a0ab7848e" . "536215"]["_72849b91eda4dfd944fd8" . "067caf54eb2"]);
        }
        $_c36d11ec61d549064ca5997745729b1c = $_fd62bc4eaaf7d58dea9bada3e30443b9[$GLOBALS["__65da1b1e" . "c2d6653e8a" . "0ab7848e53" . "6215"]["_c36d11ec61d" . "549064ca5997" . "745729b1c"]];
        $_6d727fd055d857128f471e61917a3e94 = $GLOBALS["__65da1b1" . "ec2d6653e" . "8a0ab7848" . "e536215"]["_31767d7ad58e706dbf47b7a51a" . "0fe6c4"]($GLOBALS["__65da1b1ec2d6653e8a0ab78" . "48e536215"]["_ea8229a121285ee649a72fd880bac39" . "b"]($_c36d11ec61d549064ca5997745729b1c, function ($p) {
            return isset($p[$GLOBALS["__65da1b1ec2d6653e8a0ab7848e53" . "6215"]["_e4fcbbdcee4b953" . "ccb6192dd1cbb267" . "1"]]);
        }));
        if ($_6d727fd055d857128f471e61917a3e94 === $GLOBALS["__65da1b1ec2d6653e8a0ab784" . "8e536215"]["_31767d7ad58e706d" . "bf47b7a51a0fe6c4"]($_c36d11ec61d549064ca5997745729b1c)) {
            throw new AiContentFilterException();
        }
        $_9961f986823b4be7f5c4cc8379c6b228 = [];
        foreach ($_c36d11ec61d549064ca5997745729b1c as $_c60329b6b53016ba8929aff2f19abcc6) {
            if (empty($_c60329b6b53016ba8929aff2f19abcc6[$GLOBALS["__65da1b1" . "ec2d6653e" . "8a0ab7848" . "e536215"]["_8b39dd03274720b4ed9a06cd93" . "0f29cc"]]) || isset($_c60329b6b53016ba8929aff2f19abcc6[$GLOBALS["__65da1b1ec2d665" . "3e8a0ab7848e5362" . "15"]["_e4fcbbdcee4b9" . "53ccb6192dd1cb" . "b2671"]])) {
                
                
                continue;
            }
            try {
                $_31958d0b40348d4ca7900c41684e4adc = new FilePart($_c60329b6b53016ba8929aff2f19abcc6[$GLOBALS["__65da1b1ec2d6653e8a0a" . "b7848e536215"]["_8b39dd03274" . "720b4ed9a06c" . "d930f29cc"]], $_c60329b6b53016ba8929aff2f19abcc6[$GLOBALS["__65da1b1ec2d6653e8a0ab7848e" . "536215"]["_e15567441c24cf597f085689c7" . "22c660"]] ?? VertexAiImageGenerationConfig::DEFAULT_MIME_TYPE, PartInterface::PART_ROLE_MODEL);
            } catch (\Throwable $_3a16c5fe1a78b54b69e204ec07dcf670) {
                throw new AiInvalidResponseException($GLOBALS["__65da1b1ec2d6653e8a0ab7848e53" . "6215"]["_f3cd33f" . "fc40bfb3" . "7206b0dc" . "ff170cc9" . "6"] . $_3a16c5fe1a78b54b69e204ec07dcf670->getMessage(), $_3a16c5fe1a78b54b69e204ec07dcf670->getCode(), $_3a16c5fe1a78b54b69e204ec07dcf670);
            }
            $_9961f986823b4be7f5c4cc8379c6b228[] = $_31958d0b40348d4ca7900c41684e4adc;
        }
        return new self($_9961f986823b4be7f5c4cc8379c6b228);
    }
    public function hasTerminated() : bool
    {
        return false;
    }
    public function getParts() : array
    {
        return $this->parts;
    }
    
    
    
    
    
    
    public function getGeneratedImages() : array
    {
        return $this->parts;
    }
}