'int', 'content' => 'string', 'subscriptionId' => 'int', 'type' => SubscriptionNoteType::class, 'createdAt' => DateTime::class, ]; /** * {@inheritdoc} */ protected $relationships = [ 'subscription' => Relationship::BELONGS_TO, ]; /** * @since 4.8.0 * * @return SubscriptionNote|null */ public static function find($id) { return give()->subscriptions->notes->getById($id); } /** * @since 4.8.0 * * @return $this * * @throws Exception|InvalidArgumentException */ public static function create(array $attributes): SubscriptionNote { $subscriptionNote = new static($attributes); give()->subscriptions->notes->insert($subscriptionNote); return $subscriptionNote; } /** * @since 4.8.0 * * @return void * * @throws Exception|InvalidArgumentException */ public function save() { if (! $this->id) { give()->subscriptions->notes->insert($this); } else { give()->subscriptions->notes->update($this); } } /** * @since 4.8.0 * * @throws Exception|InvalidArgumentException */ public function delete(): bool { return give()->subscriptions->notes->delete($this); } /** * @since 4.8.0 * * @return ModelQueryBuilder */ public static function query(): ModelQueryBuilder { return give()->subscriptions->notes->prepareQuery(); } /** * @since 4.8.0 * * @return ModelQueryBuilder */ public function subscription(): ModelQueryBuilder { return give()->subscriptions->queryById($this->subscriptionId); } /** * @since 4.8.0 * * @param object $object */ public static function fromQueryBuilderObject($object): SubscriptionNote { return SubscriptionNoteQueryData::fromObject($object)->toSubscriptionNote(); } /** * @since 4.8.0 */ public static function factory(): SubscriptionNoteFactory { return new SubscriptionNoteFactory(static::class); } }