get(); } public function withoutGlobalSync() { Requirement::withoutSyncBoot(); } public function paginateByCode($code, PaginateBuilderAttr $paginateBuilderAttr): PaginateCollectionAttr { return (new PaginateCollectionAttrBuilder) ->build( Requirement::where('code', $code), $paginateBuilderAttr, new PaginateSchemaRequirement ); } public function findByNameAndCode($name, $code) { return Requirement::where([['name', $name], ['code', $code]])->first(); } public function findById($id) { return Requirement::find($id); } public function select2PaginateByCode($code, ?string $search): PaginateCollectionAttr { return (new PaginateCollectionAttrBuilder) ->build( Requirement::where('code', $code)->selectRaw('id, name as text'), (new PaginateBuilderAttr)->setSearchKeyword($search), new PaginateSchemaRequirement ); } public function paginate(PaginateBuilderAttr $paginateBuilderAttr): PaginateCollectionAttr { return (new PaginateCollectionAttrBuilder) ->build( Requirement::query(), $paginateBuilderAttr, new PaginateSchemaRequirement ); } public function fetch($id) { return Requirement::findOrFail($id); } public function create(RequirementAttr $requirementAttr) { $requirement = Requirement::create([ 'name' => $requirementAttr->getName(), 'code' => $requirementAttr->getCode() ]); return $this->fetch($requirement->id); } public function update(RequirementAttr $requirementAttr, $id) { $requirement = $this->fetch($id); $requirement->update([ 'name' => $requirementAttr->getName(), 'code' => $requirementAttr->getCode() ]); return $this->fetch($id); } public function delete($id) { $requirement = $this->fetch($id); $requirement->delete(); return $requirement; } public function getSudahDibayar() { return Requirement::where('name', 'sudah dibayar')->first(); } public function createSudahDibayar() { $requirement = Requirement::create([ 'name' => 'sudah dibayar', 'code' => 4 ]); return $requirement; } }