![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mets.corals.io/wp-content/plugins/give/src/Donations/Models/ |
<?php namespace Give\Donations\Models; use DateTime; use Give\Donations\Factories\DonationNoteFactory; use Give\Framework\Exceptions\Primitives\Exception; use Give\Framework\Exceptions\Primitives\InvalidArgumentException; use Give\Framework\Models\Contracts\ModelCrud; use Give\Framework\Models\Contracts\ModelHasFactory; use Give\Framework\Models\Model; use Give\Framework\Models\ModelQueryBuilder; use Give\Framework\Models\ValueObjects\Relationship; use Give\Framework\Support\Facades\DateTime\Temporal; /** * @since 2.21.0 * * @property int $id * @property int $donationId * @property string $content * @property DateTime $createdAt * @property Donation $donation */ class DonationNote extends Model implements ModelCrud, ModelHasFactory { /** * @inheritdoc */ protected $properties = [ 'id' => 'int', 'donationId' => 'int', 'content' => 'string', 'createdAt' => DateTime::class, ]; /** * @inheritdoc */ protected $relationships = [ 'donation' => Relationship::BELONGS_TO, ]; /** * @since 2.21.0 * * @return DonationNote|null */ public static function find($id) { return give()->donations->notes->getById($id); } /** * @since 2.21.0 * * @return $this * @throws Exception|InvalidArgumentException */ public static function create(array $attributes): DonationNote { $donationNote = new static($attributes); give()->donations->notes->insert($donationNote); return $donationNote; } /** * @since 2.21.0 * * @return void * @throws Exception|InvalidArgumentException */ public function save() { if (!$this->id) { give()->donations->notes->insert($this); } else{ give()->donations->notes->update($this); } } /** * @since 2.21.0 * * @throws Exception|InvalidArgumentException */ public function delete(): bool { return give()->donations->notes->delete($this); } /** * @since 2.21.0 * * @return ModelQueryBuilder<DonationNote> */ public static function query(): ModelQueryBuilder { return give()->donations->notes->prepareQuery(); } /** * @since 2.21.0 * * @return ModelQueryBuilder<Donation> */ public function donation(): ModelQueryBuilder { return give()->donations->queryById($this->donationId); } /** * @since 2.21.0 * * @param object $object */ public static function fromQueryBuilderObject($object): DonationNote { return new DonationNote([ 'id' => (int)$object->id, 'donationId' => (int)$object->donationId, 'createdAt' => Temporal::toDateTime($object->createdAt), 'content' => (string)$object->content, ]); } /** * @since 2.21.0 */ public static function factory(): DonationNoteFactory { return new DonationNoteFactory(static::class); } }