File: //home/artinside/public_html/raquel/source/Models/Ecommerce/Produto.php
<?php
namespace Source\Models\Ecommerce;
use Source\Core\Model;
use Source\Models\Category;
/**
* Class Produto
* @package Source\Models\Ecommerce
*/
class Produto extends Model
{
/**
* Post constructor.
*/
public function __construct()
{
parent::__construct("produtos", ["id"], ["nome", "url", "descricao", "tipo"]);
}
/**
* @param string $url
* @param string $columns
* @return null|Produto
*/
public function findByUri(string $url, string $columns = "*"): ?Produto
{
$find = $this->find("url = :url AND status = 'produtos'", "url={$url}", $columns);
return $find->fetch();
}
/**
* @param string $gLink
* @param string $columns
* @return null|Produto
*/
public function findByGlink(string $gLink, string $columns = "*"): ?Produto
{
$find = $this->find("gallery_link = :gLink", "gLink={$gLink}", $columns);
return $find->fetch();
}
//
// /**
// * @return null|Category
// */
// public function category(): ?Category
// {
// if ($this->category) {
// return (new Category())->findById($this->category);
// }
// return null;
// }
/**
* @return bool
*/
public function save(): bool
{
$checkUri = (new Produto())->find("url = :url AND id != :id", "url={$this->url}&id={$this->id}");
if ($checkUri->count()) {
$this->url = "{$this->url}-{$this->lastId()}";
}
return parent::save();
}
}