File: //home/artinside/sites.artinside.com.br/paliar/source/Models/Course.php
<?php
namespace Source\Models;
use Source\Core\Model;
/**
* Class Course
* @package Source\Models
*/
class Course extends Model
{
/**
* Post constructor.
*/
public function __construct()
{
parent::__construct("course", ["id"], ["title", "uri", "subtitle", "workload"]);
}
/**
* @param string $uri
* @param string $columns
* @return null|Course
*/
public function findByUri(string $uri, string $columns = "*"): ?Course
{
$find = $this->find("uri = :uri", "uri={$uri}", $columns);
return $find->fetch();
}
/**
* @return null|Filters
*/
public function filters(string $type = "area"): ?Filters
{
if ($type) {
return (new Filters())->findByType($type)->fetch();
}
return null;
}
/**
* @return null|Filters
*/
public function filtersByTitle(?string $title = ""): ?Filters
{
if ($title) {
return (new Filters())->find("title LIKE '%$title%'")->fetch();
}
return null;
}
/**
* @return bool
*/
public function save(): bool
{
$checkUri = (new Course())->find("uri = :uri AND id != :id", "uri={$this->uri}&id={$this->id}");
if ($checkUri->count()) {
$this->uri = "{$this->uri}-{$this->lastId()}";
}
return parent::save();
}
}