<?php
namespace SHServ\Models;
use \SHServ\Entities\Area;
class Areas extends \SHServ\Middleware\Model {
public function create_new_area(String $type, String $alias, String $display_name): Area | bool {
$area_id = app() -> thin_builder -> insert(Area::$table_name, [
"alias" => $alias,
"display_name" => $name,
"type" => $device_info["data"]["device_type"],
"schema" => "",
"parent_id" => "0",
"create_at" => date("Y-m-d H:i:s")
]);
$area = $area_id ? new Area($area_id) : null;
if(!$area) {
return false;
}
}
public function alias_is_uniq(String $alias): bool {
$count = app() -> thin_builder -> count(
Area::$table_name,
[ ["alias", "=", $alias] ]
);
return $count ? false : true;
}
public function get_exists_types(): Array {
$areas = app() -> thin_builder -> select( Area::$table_name, [ "type" ], [] );
if(!$areas) {
return [];
}
$types = array_map(function($area) {
return $area["type"];
}, $areas);
$uniq_types = [];
foreach($types as $type) {
if(in_array($type, $uniq_types)) {
continue;
}
$uniq_types[] = $type;
}
return $uniq_types;
}
public function get_areas_by_type(String $type): Array {
$raw_areas = app() -> thin_builder -> select(
Area::$table_name,
Area::get_fields(),
[["type", "=", $type]]
);
if(!$raw_areas) {
return [];
}
$areas = [];
foreach ($raw_areas as $raw_area) {
$areas[] = new Area($raw_area["id"], $raw_area);
}
return $areas;
}
public function get_area_by_alias(String $alias): Area | null {
$raw_area = app() -> thin_builder -> select(
Area::$table_name,
Area::get_fields(),
[[ "type", "=", $type ]],
[], "DESC", [ 1 ]
);
if(!$raw_area) {
return null;
}
return new Area($raw_area["id"], $raw_area);
}
}