<?php namespace SHServ\Factory; use \SHServ\Entities\Profile; use \SHServ\Entities\User; use \SHServ\Entities\Meta; class Creator { public function create_user(String $alias, String $email, String $password) { $password_hash = sha1($password); $uid = app() -> thin_builder -> insert(User::$table_name, [ "alias" => $alias, "email" => $email, "password" => $password_hash, "create_at" => date("Y-m-d H:i:s") ]); return $uid ? new User($uid) : null; } public function create_profile(Int $uid) { $profile_id = app() -> thin_builder -> insert(Profile::$table_name, [ "uid" => $uid, "create_at" => date("Y-m-d H:i:s") ]); return $profile_id ? new Profile($profile_id) : null; } public function create_image(Int $uid, Int $ent_id, String $assignment, String $alias, Int $sequence = 0) { $image_id = app() -> thin_builder -> insert(Image::$table_name, [ "uid" => $uid, "ent_id" => $ent_id, "assignment" => $assignment, "alias" => $alias, "sequence" => $sequence, "create_at" => date("Y-m-d H:i:s") ]); return $image_id ? new Image($image_id) : null; } public function create_uadpost( Int $uid, String $title, String $content, Int $condition, Int $exchange_flag, Float $price, String $currency, Float $lat, Float $lng, String $country_en, String $country_ru, String $region_en, String $region_ru, String $city_en, String $city_ru, Int $images_number, String $state = "published" ) { $uadpost_id = app() -> thin_builder -> insert(UAdPost::$table_name, [ "uid" => $uid, "alias" => app() -> utils -> gen_from_text_alias(uniqid() . "-" . $title), "title" => $title, "content" => $content, "condition_used" => $condition, "exchange_flag" => $exchange_flag, "state" => $state, "price" => $price, "single_price" => app() -> utils -> convert_price_to_uah_from($currency, $price), "currency" => $currency, "location_lat" => $lat, "location_lng" => $lng, "country_en" => $country_en, "country_ru" => $country_ru, "region_en" => $region_en, "region_ru" => $region_ru, "city_en" => $city_en, "city_ru" => $city_ru, "factor" => 1, "rating" => 0, "images_number" => intval($images_number), "update_at" => date("Y-m-d H:i:s") ]); $uadpost = $uadpost_id ? new UAdPost($uadpost_id) : null; if($uadpost) { $uadpost -> generate_keywords(); } return $uadpost; } public function create_meta(Int $ent_id, String $assignment, String $name, $value): Meta { $data = [ "ent_id" => $ent_id, "assignment" => $assignment, "name" => $name, "value" => $value, "create_at" => date("Y-m-d H:i:s") ]; $meta_id = app() -> thin_builder -> insert(Meta::$table_name, $data); return new Meta($meta_id, array_merge( [ "id" => $meta_id, "update_at" => $data["create_at"] ], $data )); } }