title = $title; $this->description = $description; $this->companyId = $companyId; $this->salary = $salary; } /* * Everything from here is static functionality */ public const TABLE_NAME = 'job_offers'; static function __constructStatic() { $columns = array( 'title ' . DB::STRING_TYPE, 'description ' . DB::STRING_TYPE, 'companyId ' . DB::INTEGER_TYPE, // Requires a foreign key 'salary ' . DB::FLOAT_TYPE, ); $foreignKeys = array( DB::genFK('companyId', Company::TABLE_NAME, 'id') ); self::$DB->createTable(self::TABLE_NAME, $columns, $foreignKeys); } /* Create */ /** * Inserts the giveb JobOffer into the databse. The id is automatically generated in the database. * * @param JobOffer $jb */ static function insertIntoDB($jb) { self::$DB->insertValue(self::TABLE_NAME, $jb->title, $jb->description, $jb->companyId, $jb->salary); } /* Read */ /** * Returns the JobOffer with the given id from the database. * * @return JobOffer */ static function getFromDBById(int $id) { return self::$DB->getById(self::TABLE_NAME, $id); } /** * Returns all JobOffers from the database. * * @return JobOffer[] */ static function getAllFromDB() { return self::$DB->getAllValues(self::TABLE_NAME); } /* Update */ /** * Updates the given JobOffer from the database. * **WARNING**: the JobOffer **MUST** have it's database id. * * @param JobOffer $jb */ static function updateFromDB($jb) { self::$DB->updateById(self::TABLE_NAME, $jb->id, 'title', $jb->title, 'description', $jb->description, 'companyId', $jb->companyId, 'salary', $jb->salary); } /* Delete */ /** * Deletes the JobOffer with the given id from the database. */ static function deleteFromDB(int $id) { self::$DB->deleteById(self::TABLE_NAME, $id); } } JobOffer::__constructStatic();