/** * * @param type $type * @param type $subType * @return type */ public static function f($type, $subType = 'string', $length = 64) { $faker = \Faker\Factory::create(); switch (strtolower($type)) { case 'string': switch (strtolower($subType)) { case 'username': return $faker->userName(); case 'personfullname': return $faker->name(); case 'persondisplayname': return $faker->name(); case 'personfirstname': return $faker->firstName(); case 'personlastname': return $faker->lastName(); case 'personmiddlename': return $faker->lastName(); case 'persontitle': return 'Mr.'; case 'email': return $faker->email(); case 'alphaid': return zbase_generate_hash([rand(1, 1000), time(), rand(1, 1000)], $faker->email()); case 'companyname': return $faker->company(); case 'telephone': return $faker->phoneNumber(); case 'password': return bcrypt('password'); case 'avatarurl': return 'http://api.adorable.io/avatars/285/' . $faker->email() . '.png'; default: return $faker->text($length); } break; case 'tinyint': return rand(1, 16); case 'boolean': return rand(0, 1); case 'timestamp': return $faker->dateTime('now'); default: } }
/** * Generate and Update Row Alpha ID * @return void */ protected function _updateAlphaId() { if (!empty($this->category_id) && empty($this->alpha_id) && !empty($this->alphable)) { $this->alpha_id = zbase_generate_hash([$this->category_id, time()], $this->entityName); $this->save(); } }
/** * Create new Rows * * @param string $entityName Entity Name * @param array $entityConfig Entity Configuration * @param array $foreignData The Foreign/Parent Data */ protected function _rows($entityName, $entityConfig, $foreignData = [], $related = false) { $f = []; $model = zbase_data_get($entityConfig, 'model', null); $tableName = zbase_data_get($entityConfig, 'table.name', null); $primaryKey = zbase_data_get($entityConfig, 'table.primaryKey', null); $modelName = zbase_class_name($model); $columns = zbase_data_get($entityConfig, 'table.columns', []); if (method_exists($modelName, 'tableColumns')) { $columns = $modelName::tableColumns($columns); } $timestamp = zbase_data_get($entityConfig, 'table.timestamp', []); $softDelete = zbase_data_get($entityConfig, 'table.softDelete', []); $alphaId = zbase_data_get($entityConfig, 'table.alphaId', false); $relations = zbase_data_get($entityConfig, 'relations', []); if (method_exists($modelName, 'tableRelations')) { $relations = $modelName::tableRelations($relations); } $now = \Carbon\Carbon::now(); foreach ($columns as $columnName => $column) { if ($columnName != $primaryKey) { $columnModel = zbase_data_column($columnName, $column); $f[$columnName] = $columnModel->faker(); } } if ($timestamp) { $f['created_at'] = $now; $f['updated_at'] = $now; } if ($softDelete) { $f['deleted_at'] = rand(0, 1) == 1 ? $now : null; } if (!empty($foreignData)) { $f = array_replace($f, $foreignData); } $entityModel = zbase_entity($entityName); if (!empty($entityModel)) { $f = $entityModel->fixDataArray($f, 'insert'); } $insertedId = \DB::table($tableName)->insertGetId($f); if (!empty($alphaId)) { \DB::table($tableName)->where($primaryKey, $insertedId)->update(['alpha_id' => zbase_generate_hash([rand(1, 1000), time(), rand(1, 1000)], $entityName)]); } if (!empty($primaryKey)) { $f[$primaryKey] = $insertedId; } if (!empty($relations) && empty($related)) { $this->_relations($relations, $f); } }
/** * Generate and Update Row Alpha ID * @return void */ protected function _updateAlphaId() { if (!empty($this->node_id) && empty($this->alpha_id) && !empty($this->alphable)) { $alphaId = zbase_generate_hash([$this->node_id, time()], $this->entityName); $rowByAlphaId = $this->repository()->byAlphaId($alphaId); if (!empty($rowByAlphaId)) { $i = 1; while (!empty($this->repository()->byAlphaId($alphaId))) { $alphaId = zbase_generate_hash([$this->node_id, time(), $i++], $this->entityName); } } $this->alpha_id = $alphaId; $this->save(); } }
/** * Generate and Update Row Alpha ID * @return void */ protected function _updateAlphaId() { if (!empty($this->file_id) && empty($this->alpha_id) && !empty($this->alphable)) { $alphaId = zbase_generate_hash([$this->file_id, time()], $this->entityName); $i = 1; while ($this->fetchByAlphaId($alphaId) > 0) { $alphaId = zbase_generate_hash([time(), $i++, $this->file_id], $this->entityName); } $this->alpha_id = $alphaId; $this->save(); } }
/** * Default Data * @param array $defaultData Configuration default data * @return array */ public static function tableDefaultData($defaultData = []) { $defaultData = [['status' => 'ok', 'username' => 'sudox', 'name' => 'Super User', 'email' => 'sudox@' . zbase_domain(), 'email_verified' => 1, 'email_verified_at' => \Zbase\Models\Data\Column::f('timestamp'), 'password' => \Zbase\Models\Data\Column::f('string', 'password'), 'password_updated_at' => \Zbase\Models\Data\Column::f('timestamp'), 'created_at' => \Zbase\Models\Data\Column::f('timestamp'), 'updated_at' => \Zbase\Models\Data\Column::f('timestamp'), 'alpha_id' => zbase_generate_hash([rand(1, 1000), time(), rand(1, 1000)], 'sudo'), 'deleted_at' => null], ['status' => 'ok', 'username' => 'adminx', 'name' => 'Admin Istrator', 'email' => 'adminx@' . zbase_domain(), 'email_verified' => 1, 'email_verified_at' => \Zbase\Models\Data\Column::f('timestamp'), 'password' => \Zbase\Models\Data\Column::f('string', 'password'), 'password_updated_at' => \Zbase\Models\Data\Column::f('timestamp'), 'created_at' => \Zbase\Models\Data\Column::f('timestamp'), 'updated_at' => \Zbase\Models\Data\Column::f('timestamp'), 'alpha_id' => zbase_generate_hash([rand(1, 1000), time(), rand(1, 1000)], 'admin'), 'deleted_at' => null], ['status' => 'ok', 'username' => 'systemx', 'name' => 'Mr. System', 'email' => 'systemx@' . zbase_domain(), 'email_verified' => 1, 'email_verified_at' => \Zbase\Models\Data\Column::f('timestamp'), 'password' => zbase_generate_code(), 'password_updated_at' => \Zbase\Models\Data\Column::f('timestamp'), 'created_at' => \Zbase\Models\Data\Column::f('timestamp'), 'updated_at' => \Zbase\Models\Data\Column::f('timestamp'), 'alpha_id' => zbase_generate_hash([rand(1, 1000), time(), rand(1, 1000)], 'admin'), 'deleted_at' => null], ['status' => 'ok', 'username' => 'userx', 'name' => 'Just User', 'email' => 'userx@' . zbase_domain(), 'email_verified' => 1, 'email_verified_at' => \Zbase\Models\Data\Column::f('timestamp'), 'password' => \Zbase\Models\Data\Column::f('string', 'password'), 'password_updated_at' => \Zbase\Models\Data\Column::f('timestamp'), 'created_at' => \Zbase\Models\Data\Column::f('timestamp'), 'updated_at' => \Zbase\Models\Data\Column::f('timestamp'), 'alpha_id' => zbase_generate_hash([rand(1, 1000), time(), rand(1, 1000)], 'user'), 'deleted_at' => null], ['status' => 'ok', 'username' => 'moderatorx', 'name' => 'Moody Moderator', 'email' => 'moderator@' . zbase_domain(), 'email_verified' => 1, 'email_verified_at' => \Zbase\Models\Data\Column::f('timestamp'), 'password' => \Zbase\Models\Data\Column::f('string', 'password'), 'password_updated_at' => \Zbase\Models\Data\Column::f('timestamp'), 'created_at' => \Zbase\Models\Data\Column::f('timestamp'), 'updated_at' => \Zbase\Models\Data\Column::f('timestamp'), 'alpha_id' => zbase_generate_hash([rand(1, 1000), time(), rand(1, 1000)], 'moderator'), 'deleted_at' => null]]; return $defaultData; }