. */ declare(strict_types=1); namespace FireflyIII\Models; use Carbon\Carbon; use Eloquent; use FireflyIII\Support\Models\ReturnsIntegerIdTrait; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; /** * FireflyIII\Models\PiggyBankEvent * * @property int $id * @property null|Carbon $created_at * @property null|Carbon $updated_at * @property int $piggy_bank_id * @property null|int $transaction_journal_id * @property Carbon $date * @property string $amount * @property PiggyBank $piggyBank * @property null|TransactionJournal $transactionJournal * * @method static Builder|PiggyBankEvent newModelQuery() * @method static Builder|PiggyBankEvent newQuery() * @method static Builder|PiggyBankEvent query() * @method static Builder|PiggyBankEvent whereAmount($value) * @method static Builder|PiggyBankEvent whereCreatedAt($value) * @method static Builder|PiggyBankEvent whereDate($value) * @method static Builder|PiggyBankEvent whereId($value) * @method static Builder|PiggyBankEvent wherePiggyBankId($value) * @method static Builder|PiggyBankEvent whereTransactionJournalId($value) * @method static Builder|PiggyBankEvent whereUpdatedAt($value) * * @mixin Eloquent */ class PiggyBankEvent extends Model { use ReturnsIntegerIdTrait; protected $casts = [ 'created_at' => 'datetime', 'updated_at' => 'datetime', 'date' => 'date', ]; protected $fillable = ['piggy_bank_id', 'transaction_journal_id', 'date', 'amount']; protected $hidden = ['amount_encrypted']; public function piggyBank(): BelongsTo { return $this->belongsTo(PiggyBank::class); } /** * @param mixed $value */ public function setAmountAttribute($value): void { $this->attributes['amount'] = (string)$value; } public function transactionJournal(): BelongsTo { return $this->belongsTo(TransactionJournal::class); } /** * Get the amount */ protected function amount(): Attribute { return Attribute::make( get: static fn ($value) => (string)$value, ); } protected function piggyBankId(): Attribute { return Attribute::make( get: static fn ($value) => (int)$value, ); } }