Update files using Rector.

This commit is contained in:
James Cole
2025-05-29 15:01:06 +02:00
parent 189a323f3c
commit 5be6bb755d
126 changed files with 668 additions and 612 deletions

View File

@@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Models;
use Illuminate\Database\Eloquent\Attributes\Scope;
use FireflyIII\Enums\AccountTypeEnum;
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
@@ -46,19 +47,6 @@ class Account extends Model
use ReturnsIntegerUserIdTrait;
use SoftDeletes;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'user_id' => 'integer',
'user_group_id' => 'integer',
'deleted_at' => 'datetime',
'active' => 'boolean',
'encrypted' => 'boolean',
'virtual_balance' => 'string',
'native_virtual_balance' => 'string',
];
protected $fillable = ['user_id', 'user_group_id', 'account_type_id', 'name', 'active', 'virtual_balance', 'iban', 'native_virtual_balance'];
protected $hidden = ['encrypted'];
@@ -110,15 +98,16 @@ class Account extends Model
/**
* Get the account number.
*/
public function getAccountNumberAttribute(): string
protected function accountNumber(): Attribute
{
/** @var null|AccountMeta $metaValue */
$metaValue = $this->accountMeta()
->where('name', 'account_number')
->first()
;
return null !== $metaValue ? $metaValue->data : '';
return Attribute::make(get: function () {
/** @var null|AccountMeta $metaValue */
$metaValue = $this->accountMeta()
->where('name', 'account_number')
->first()
;
return null !== $metaValue ? $metaValue->data : '';
});
}
public function accountMeta(): HasMany
@@ -126,15 +115,15 @@ class Account extends Model
return $this->hasMany(AccountMeta::class);
}
public function getEditNameAttribute(): string
protected function editName(): Attribute
{
$name = $this->name;
if (AccountTypeEnum::CASH->value === $this->accountType->type) {
return '';
}
return $name;
return Attribute::make(get: function () {
$name = $this->name;
if (AccountTypeEnum::CASH->value === $this->accountType->type) {
return '';
}
return $name;
});
}
public function locations(): MorphMany
@@ -163,7 +152,8 @@ class Account extends Model
return $this->belongsToMany(PiggyBank::class);
}
public function scopeAccountTypeIn(EloquentBuilder $query, array $types): void
#[Scope]
protected function accountTypeIn(EloquentBuilder $query, array $types): void
{
if (false === $this->joinedAccountTypes) {
$query->leftJoin('account_types', 'account_types.id', '=', 'accounts.account_type_id');
@@ -231,4 +221,18 @@ class Account extends Model
get: static fn ($value) => (string) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'user_id' => 'integer',
'user_group_id' => 'integer',
'deleted_at' => 'datetime',
'active' => 'boolean',
'encrypted' => 'boolean',
'virtual_balance' => 'string',
'native_virtual_balance' => 'string',
];
}
}

View File

@@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Models;
use Illuminate\Database\Eloquent\Casts\Attribute;
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
@@ -34,12 +35,6 @@ class AccountMeta extends Model
{
use ReturnsIntegerIdTrait;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
protected $fillable = ['account_id', 'name', 'data'];
protected $table = 'account_meta';
@@ -48,13 +43,16 @@ class AccountMeta extends Model
return $this->belongsTo(Account::class);
}
public function getDataAttribute(mixed $value): string
protected function data(): Attribute
{
return (string) json_decode((string) $value, true);
return Attribute::make(get: fn(mixed $value) => (string) json_decode((string) $value, true), set: fn(mixed $value) => ['data' => json_encode($value)]);
}
public function setDataAttribute(mixed $value): void
protected function casts(): array
{
$this->attributes['data'] = json_encode($value);
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
}
}

View File

@@ -40,16 +40,6 @@ class Attachment extends Model
use ReturnsIntegerUserIdTrait;
use SoftDeletes;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'uploaded' => 'boolean',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
protected $fillable = ['attachable_id', 'attachable_type', 'user_id', 'user_group_id', 'md5', 'filename', 'mime', 'title', 'description', 'size', 'uploaded'];
/**
@@ -110,4 +100,15 @@ class Attachment extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'uploaded' => 'boolean',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
}
}

View File

@@ -35,15 +35,6 @@ class AuditLogEntry extends Model
use ReturnsIntegerIdTrait;
use SoftDeletes;
protected $casts
= [
'before' => 'array',
'after' => 'array',
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
];
public function auditable(): MorphTo
{
return $this->morphTo();
@@ -67,4 +58,14 @@ class AuditLogEntry extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'before' => 'array',
'after' => 'array',
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
];
}
}

View File

@@ -39,20 +39,6 @@ class AvailableBudget extends Model
use ReturnsIntegerUserIdTrait;
use SoftDeletes;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'start_date' => 'date',
'end_date' => 'date',
'transaction_currency_id' => 'int',
'amount' => 'string',
'native_amount' => 'string',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
protected $fillable = ['user_id', 'user_group_id', 'transaction_currency_id', 'amount', 'start_date', 'end_date', 'start_date_tz', 'end_date_tz', 'native_amount'];
/**
@@ -117,4 +103,19 @@ class AvailableBudget extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'start_date' => 'date',
'end_date' => 'date',
'transaction_currency_id' => 'int',
'amount' => 'string',
'native_amount' => 'string',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
}
}

View File

@@ -42,25 +42,6 @@ class Bill extends Model
use ReturnsIntegerUserIdTrait;
use SoftDeletes;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'date' => SeparateTimezoneCaster::class,
'end_date' => SeparateTimezoneCaster::class,
'extension_date' => SeparateTimezoneCaster::class,
'skip' => 'int',
'automatch' => 'boolean',
'active' => 'boolean',
'name_encrypted' => 'boolean',
'match_encrypted' => 'boolean',
'amount_min' => 'string',
'amount_max' => 'string',
'native_amount_min' => 'string',
'native_amount_max' => 'string',
];
protected $fillable
= [
'name',
@@ -204,4 +185,24 @@ class Bill extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'date' => SeparateTimezoneCaster::class,
'end_date' => SeparateTimezoneCaster::class,
'extension_date' => SeparateTimezoneCaster::class,
'skip' => 'int',
'automatch' => 'boolean',
'active' => 'boolean',
'name_encrypted' => 'boolean',
'match_encrypted' => 'boolean',
'amount_min' => 'string',
'amount_max' => 'string',
'native_amount_min' => 'string',
'native_amount_max' => 'string',
];
}
}

View File

@@ -41,17 +41,6 @@ class Budget extends Model
use ReturnsIntegerUserIdTrait;
use SoftDeletes;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'active' => 'boolean',
'encrypted' => 'boolean',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
protected $fillable = ['user_id', 'user_group_id', 'name', 'active', 'order', 'user_group_id'];
protected $hidden = ['encrypted'];
@@ -123,4 +112,16 @@ class Budget extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'active' => 'boolean',
'encrypted' => 'boolean',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
}
}

View File

@@ -37,17 +37,6 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
class BudgetLimit extends Model
{
use ReturnsIntegerIdTrait;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'start_date' => SeparateTimezoneCaster::class,
'end_date' => SeparateTimezoneCaster::class,
'auto_budget' => 'boolean',
'amount' => 'string',
'native_amount' => 'string',
];
protected $dispatchesEvents
= [
'created' => Created::class,
@@ -120,4 +109,16 @@ class BudgetLimit extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'start_date' => SeparateTimezoneCaster::class,
'end_date' => SeparateTimezoneCaster::class,
'auto_budget' => 'boolean',
'amount' => 'string',
'native_amount' => 'string',
];
}
}

View File

@@ -40,16 +40,6 @@ class Category extends Model
use ReturnsIntegerUserIdTrait;
use SoftDeletes;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'encrypted' => 'boolean',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
protected $fillable = ['user_id', 'user_group_id', 'name'];
protected $hidden = ['encrypted'];
@@ -104,4 +94,15 @@ class Category extends Model
{
return $this->belongsToMany(Transaction::class, 'category_transaction', 'category_id');
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'encrypted' => 'boolean',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
}
}

View File

@@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Models;
use Illuminate\Database\Eloquent\Casts\Attribute;
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
@@ -35,13 +36,6 @@ class Configuration extends Model
use ReturnsIntegerIdTrait;
use SoftDeletes;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
];
protected $table = 'configuration';
/**
@@ -51,16 +45,17 @@ class Configuration extends Model
*
* @return mixed
*/
public function getDataAttribute($value)
protected function data(): Attribute
{
return json_decode((string) $value);
return Attribute::make(get: fn($value) => json_decode((string) $value), set: fn($value) => ['data' => json_encode($value)]);
}
/**
* @param mixed $value
*/
public function setDataAttribute($value): void
protected function casts(): array
{
$this->attributes['data'] = json_encode($value);
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
];
}
}

View File

@@ -37,19 +37,6 @@ class CurrencyExchangeRate extends Model
use ReturnsIntegerIdTrait;
use ReturnsIntegerUserIdTrait;
use SoftDeletes;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'user_id' => 'integer',
'user_group_id' => 'integer',
'from_currency_id' => 'integer',
'to_currency_id' => 'integer',
'date' => SeparateTimezoneCaster::class,
'rate' => 'string',
'user_rate' => 'string',
];
protected $fillable = ['user_id', 'from_currency_id', 'to_currency_id', 'date', 'date_tz', 'rate'];
public function fromCurrency(): BelongsTo
@@ -94,4 +81,18 @@ class CurrencyExchangeRate extends Model
get: static fn ($value) => (string) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'user_id' => 'integer',
'user_group_id' => 'integer',
'from_currency_id' => 'integer',
'to_currency_id' => 'integer',
'date' => SeparateTimezoneCaster::class,
'rate' => 'string',
'user_rate' => 'string',
];
}
}

View File

@@ -36,14 +36,6 @@ class GroupMembership extends Model
use ReturnsIntegerIdTrait;
use ReturnsIntegerUserIdTrait;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
protected $fillable = ['user_id', 'user_group_id', 'user_role_id'];
public function user(): BelongsTo
@@ -67,4 +59,13 @@ class GroupMembership extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
}
}

View File

@@ -36,14 +36,6 @@ class InvitedUser extends Model
{
use ReturnsIntegerIdTrait;
use ReturnsIntegerUserIdTrait;
protected $casts
= [
'expires' => SeparateTimezoneCaster::class,
'redeemed' => 'boolean',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
protected $fillable = ['user_group_id', 'user_id', 'email', 'invite_code', 'expires', 'expires_tz', 'redeemed'];
/**
@@ -68,4 +60,13 @@ class InvitedUser extends Model
{
return $this->belongsTo(User::class);
}
protected function casts(): array
{
return [
'expires' => SeparateTimezoneCaster::class,
'redeemed' => 'boolean',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
}
}

View File

@@ -34,14 +34,6 @@ class LinkType extends Model
use ReturnsIntegerIdTrait;
use SoftDeletes;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'editable' => 'boolean',
];
protected $fillable = ['name', 'inward', 'outward', 'editable'];
/**
@@ -66,4 +58,13 @@ class LinkType extends Model
{
return $this->hasMany(TransactionJournalLink::class);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'editable' => 'boolean',
];
}
}

View File

@@ -34,16 +34,6 @@ class Location extends Model
{
use ReturnsIntegerIdTrait;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'zoomLevel' => 'int',
'latitude' => 'float',
'longitude' => 'float',
];
protected $fillable = ['locatable_id', 'locatable_type', 'latitude', 'longitude', 'zoom_level'];
/**
@@ -82,4 +72,15 @@ class Location extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'zoomLevel' => 'int',
'latitude' => 'float',
'longitude' => 'float',
];
}
}

View File

@@ -34,13 +34,6 @@ class Note extends Model
use ReturnsIntegerIdTrait;
use SoftDeletes;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
];
protected $fillable = ['title', 'text', 'noteable_id', 'noteable_type'];
/**
@@ -57,4 +50,12 @@ class Note extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
];
}
}

View File

@@ -37,15 +37,6 @@ class ObjectGroup extends Model
{
use ReturnsIntegerIdTrait;
use ReturnsIntegerUserIdTrait;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'user_id' => 'integer',
'user_group_id' => 'integer',
'deleted_at' => 'datetime',
];
protected $fillable = ['title', 'order', 'user_id', 'user_group_id'];
/**
@@ -105,4 +96,14 @@ class ObjectGroup extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'user_id' => 'integer',
'user_group_id' => 'integer',
'deleted_at' => 'datetime',
];
}
}

View File

@@ -39,20 +39,6 @@ class PiggyBank extends Model
use ReturnsIntegerIdTrait;
use SoftDeletes;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'start_date' => 'date',
'target_date' => 'date',
'order' => 'int',
'active' => 'boolean',
'encrypted' => 'boolean',
'target_amount' => 'string',
'native_target_amount' => 'string',
];
protected $fillable = ['name', 'order', 'target_amount', 'start_date', 'start_date_tz', 'target_date', 'target_date_tz', 'active', 'transaction_currency_id', 'native_target_amount'];
/**
@@ -154,4 +140,19 @@ class PiggyBank extends Model
get: static fn ($value) => (string) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'start_date' => 'date',
'target_date' => 'date',
'order' => 'int',
'active' => 'boolean',
'encrypted' => 'boolean',
'target_amount' => 'string',
'native_target_amount' => 'string',
];
}
}

View File

@@ -33,15 +33,6 @@ class PiggyBankEvent extends Model
{
use ReturnsIntegerIdTrait;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'date' => SeparateTimezoneCaster::class,
'amount' => 'string',
'native_amount' => 'string',
];
protected $fillable = ['piggy_bank_id', 'transaction_journal_id', 'date', 'date_tz', 'amount', 'native_amount'];
protected $hidden = ['amount_encrypted'];
@@ -80,4 +71,14 @@ class PiggyBankEvent extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'date' => SeparateTimezoneCaster::class,
'amount' => 'string',
'native_amount' => 'string',
];
}
}

View File

@@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Models;
use Illuminate\Database\Eloquent\Attributes\Scope;
use Carbon\Carbon;
use FireflyIII\Casts\SeparateTimezoneCaster;
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
@@ -35,15 +36,6 @@ class PiggyBankRepetition extends Model
{
use ReturnsIntegerIdTrait;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'start_date' => SeparateTimezoneCaster::class,
'target_date' => SeparateTimezoneCaster::class,
'virtual_balance' => 'string',
];
protected $fillable = ['piggy_bank_id', 'start_date', 'start_date_tz', 'target_date', 'target_date_tz', 'current_amount'];
public function piggyBank(): BelongsTo
@@ -51,7 +43,8 @@ class PiggyBankRepetition extends Model
return $this->belongsTo(PiggyBank::class);
}
public function scopeOnDates(EloquentBuilder $query, Carbon $start, Carbon $target): EloquentBuilder
#[Scope]
protected function onDates(EloquentBuilder $query, Carbon $start, Carbon $target): EloquentBuilder
{
return $query->where('start_date', $start->format('Y-m-d'))->where('target_date', $target->format('Y-m-d'));
}
@@ -59,7 +52,8 @@ class PiggyBankRepetition extends Model
/**
* @return EloquentBuilder
*/
public function scopeRelevantOnDate(EloquentBuilder $query, Carbon $date)
#[Scope]
protected function relevantOnDate(EloquentBuilder $query, Carbon $date)
{
return $query->where(
static function (EloquentBuilder $q) use ($date): void {
@@ -100,4 +94,14 @@ class PiggyBankRepetition extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'start_date' => SeparateTimezoneCaster::class,
'target_date' => SeparateTimezoneCaster::class,
'virtual_balance' => 'string',
];
}
}

View File

@@ -35,15 +35,6 @@ class Preference extends Model
use ReturnsIntegerIdTrait;
use ReturnsIntegerUserIdTrait;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'data' => 'array',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
protected $fillable = ['user_id', 'data', 'name', 'user_group_id'];
/**
@@ -102,4 +93,14 @@ class Preference extends Model
{
return $this->belongsTo(User::class);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'data' => 'array',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
}
}

View File

@@ -42,24 +42,6 @@ class Recurrence extends Model
use ReturnsIntegerUserIdTrait;
use SoftDeletes;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'title' => 'string',
'id' => 'int',
'description' => 'string',
'first_date' => SeparateTimezoneCaster::class,
'repeat_until' => SeparateTimezoneCaster::class,
'latest_date' => SeparateTimezoneCaster::class,
'repetitions' => 'int',
'active' => 'bool',
'apply_rules' => 'bool',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
protected $fillable
= ['user_id', 'user_group_id', 'transaction_type_id', 'title', 'description', 'first_date', 'first_date_tz', 'repeat_until', 'repeat_until_tz', 'latest_date', 'latest_date_tz', 'repetitions', 'apply_rules', 'active'];
@@ -137,4 +119,23 @@ class Recurrence extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'title' => 'string',
'id' => 'int',
'description' => 'string',
'first_date' => SeparateTimezoneCaster::class,
'repeat_until' => SeparateTimezoneCaster::class,
'latest_date' => SeparateTimezoneCaster::class,
'repetitions' => 'int',
'active' => 'bool',
'apply_rules' => 'bool',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
}
}

View File

@@ -35,15 +35,6 @@ class RecurrenceMeta extends Model
use ReturnsIntegerIdTrait;
use SoftDeletes;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'name' => 'string',
'value' => 'string',
];
protected $fillable = ['recurrence_id', 'name', 'value'];
protected $table = 'recurrences_meta';
@@ -59,4 +50,14 @@ class RecurrenceMeta extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'name' => 'string',
'value' => 'string',
];
}
}

View File

@@ -36,16 +36,6 @@ class RecurrenceTransaction extends Model
use ReturnsIntegerIdTrait;
use SoftDeletes;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'amount' => 'string',
'foreign_amount' => 'string',
'description' => 'string',
];
protected $fillable
= [
'recurrence_id',
@@ -143,4 +133,15 @@ class RecurrenceTransaction extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'amount' => 'string',
'foreign_amount' => 'string',
'description' => 'string',
];
}
}

View File

@@ -35,15 +35,6 @@ class RecurrenceTransactionMeta extends Model
use ReturnsIntegerIdTrait;
use SoftDeletes;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'name' => 'string',
'value' => 'string',
];
protected $fillable = ['rt_id', 'name', 'value'];
protected $table = 'rt_meta';
@@ -59,4 +50,14 @@ class RecurrenceTransactionMeta extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'name' => 'string',
'value' => 'string',
];
}
}

View File

@@ -32,16 +32,17 @@ class Role extends Model
{
use ReturnsIntegerIdTrait;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
protected $fillable = ['name', 'display_name', 'description'];
public function users(): BelongsToMany
{
return $this->belongsToMany(User::class);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
}
}

View File

@@ -39,20 +39,6 @@ class Rule extends Model
use ReturnsIntegerUserIdTrait;
use SoftDeletes;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'active' => 'boolean',
'order' => 'int',
'stop_processing' => 'boolean',
'id' => 'int',
'strict' => 'boolean',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
protected $fillable = ['rule_group_id', 'order', 'active', 'title', 'description', 'user_id', 'user_group_id', 'strict'];
/**
@@ -101,9 +87,9 @@ class Rule extends Model
/**
* @param mixed $value
*/
public function setDescriptionAttribute($value): void
protected function description(): Attribute
{
$this->attributes['description'] = e($value);
return Attribute::make(set: fn($value) => ['description' => e($value)]);
}
public function userGroup(): BelongsTo
@@ -124,4 +110,19 @@ class Rule extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'active' => 'boolean',
'order' => 'int',
'stop_processing' => 'boolean',
'id' => 'int',
'strict' => 'boolean',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
}
}

View File

@@ -35,15 +35,6 @@ class RuleAction extends Model
{
use ReturnsIntegerIdTrait;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'active' => 'boolean',
'order' => 'int',
'stop_processing' => 'boolean',
];
protected $fillable = ['rule_id', 'action_type', 'action_value', 'order', 'active', 'stop_processing'];
public function getValue(array $journal): string
@@ -88,4 +79,14 @@ class RuleAction extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'active' => 'boolean',
'order' => 'int',
'stop_processing' => 'boolean',
];
}
}

View File

@@ -39,18 +39,6 @@ class RuleGroup extends Model
use ReturnsIntegerUserIdTrait;
use SoftDeletes;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'active' => 'boolean',
'stop_processing' => 'boolean',
'order' => 'int',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
protected $fillable = ['user_id', 'user_group_id', 'stop_processing', 'order', 'title', 'description', 'active'];
/**
@@ -92,4 +80,17 @@ class RuleGroup extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'active' => 'boolean',
'stop_processing' => 'boolean',
'order' => 'int',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
}
}

View File

@@ -32,15 +32,6 @@ class RuleTrigger extends Model
{
use ReturnsIntegerIdTrait;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'active' => 'boolean',
'order' => 'int',
'stop_processing' => 'boolean',
];
protected $fillable = ['rule_id', 'trigger_type', 'trigger_value', 'order', 'active', 'stop_processing'];
public function rule(): BelongsTo
@@ -61,4 +52,14 @@ class RuleTrigger extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'active' => 'boolean',
'order' => 'int',
'stop_processing' => 'boolean',
];
}
}

View File

@@ -40,19 +40,6 @@ class Tag extends Model
use ReturnsIntegerUserIdTrait;
use SoftDeletes;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'date' => SeparateTimezoneCaster::class,
'zoomLevel' => 'int',
'latitude' => 'float',
'longitude' => 'float',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
protected $fillable = ['user_id', 'user_group_id', 'tag', 'date', 'date_tz', 'description', 'tagMode'];
protected $hidden = ['zoomLevel', 'latitude', 'longitude'];
@@ -99,4 +86,18 @@ class Tag extends Model
{
return $this->belongsToMany(TransactionJournal::class);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'date' => SeparateTimezoneCaster::class,
'zoomLevel' => 'int',
'latitude' => 'float',
'longitude' => 'float',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
}
}

View File

@@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Models;
use Illuminate\Database\Eloquent\Attributes\Scope;
use Carbon\Carbon;
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
use Illuminate\Database\Eloquent\Builder;
@@ -39,25 +40,6 @@ class Transaction extends Model
use ReturnsIntegerIdTrait;
use SoftDeletes;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'identifier' => 'int',
'encrypted' => 'boolean', // model does not have these fields though
'bill_name_encrypted' => 'boolean',
'reconciled' => 'boolean',
'balance_dirty' => 'boolean',
'balance_before' => 'string',
'balance_after' => 'string',
'date' => 'datetime',
'amount' => 'string',
'foreign_amount' => 'string',
'native_amount' => 'string',
'native_foreign_amount' => 'string',
];
protected $fillable
= [
'account_id',
@@ -110,7 +92,8 @@ class Transaction extends Model
/**
* Check for transactions AFTER a specified date.
*/
public function scopeAfter(Builder $query, Carbon $date): void
#[Scope]
protected function after(Builder $query, Carbon $date): void
{
if (!self::isJoined($query, 'transaction_journals')) {
$query->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id');
@@ -137,7 +120,8 @@ class Transaction extends Model
/**
* Check for transactions BEFORE the specified date.
*/
public function scopeBefore(Builder $query, Carbon $date): void
#[Scope]
protected function before(Builder $query, Carbon $date): void
{
if (!self::isJoined($query, 'transaction_journals')) {
$query->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id');
@@ -145,7 +129,8 @@ class Transaction extends Model
$query->where('transaction_journals.date', '<=', $date->format('Y-m-d 23:59:59'));
}
public function scopeTransactionTypes(Builder $query, array $types): void
#[Scope]
protected function transactionTypes(Builder $query, array $types): void
{
if (!self::isJoined($query, 'transaction_journals')) {
$query->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id');
@@ -215,4 +200,24 @@ class Transaction extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'identifier' => 'int',
'encrypted' => 'boolean', // model does not have these fields though
'bill_name_encrypted' => 'boolean',
'reconciled' => 'boolean',
'balance_dirty' => 'boolean',
'balance_before' => 'string',
'balance_after' => 'string',
'date' => 'datetime',
'amount' => 'string',
'foreign_amount' => 'string',
'native_amount' => 'string',
'native_foreign_amount' => 'string',
];
}
}

View File

@@ -39,14 +39,6 @@ class TransactionCurrency extends Model
public ?bool $userGroupEnabled = null;
public ?bool $userGroupNative = null;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'decimal_places' => 'int',
'enabled' => 'bool',
];
protected $fillable = ['name', 'code', 'symbol', 'decimal_places', 'enabled'];
@@ -115,4 +107,14 @@ class TransactionCurrency extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'decimal_places' => 'int',
'enabled' => 'bool',
];
}
}

View File

@@ -38,18 +38,6 @@ class TransactionGroup extends Model
use ReturnsIntegerUserIdTrait;
use SoftDeletes;
protected $casts
= [
'id' => 'integer',
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'title' => 'string',
'date' => 'datetime',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
protected $fillable = ['user_id', 'user_group_id', 'title'];
/**
@@ -97,4 +85,17 @@ class TransactionGroup extends Model
{
return $this->belongsTo(UserGroup::class);
}
protected function casts(): array
{
return [
'id' => 'integer',
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'title' => 'string',
'date' => 'datetime',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
}
}

View File

@@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Models;
use Illuminate\Database\Eloquent\Attributes\Scope;
use Carbon\Carbon;
use FireflyIII\Casts\SeparateTimezoneCaster;
use FireflyIII\Enums\TransactionTypeEnum;
@@ -52,23 +53,6 @@ class TransactionJournal extends Model
use ReturnsIntegerUserIdTrait;
use SoftDeletes;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'date' => SeparateTimezoneCaster::class,
'interest_date' => 'date',
'book_date' => 'date',
'process_date' => 'date',
'order' => 'int',
'tag_count' => 'int',
'encrypted' => 'boolean',
'completed' => 'boolean',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
protected $fillable
= [
'user_id',
@@ -181,7 +165,8 @@ class TransactionJournal extends Model
return $query->where('transaction_journals.date', '<=', $date->format('Y-m-d H:i:s'));
}
public function scopeTransactionTypes(EloquentBuilder $query, array $types): void
#[Scope]
protected function transactionTypes(EloquentBuilder $query, array $types): void
{
if (!self::isJoined($query, 'transaction_types')) {
$query->leftJoin('transaction_types', 'transaction_types.id', '=', 'transaction_journals.transaction_type_id');
@@ -259,4 +244,22 @@ class TransactionJournal extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'date' => SeparateTimezoneCaster::class,
'interest_date' => 'date',
'book_date' => 'date',
'process_date' => 'date',
'order' => 'int',
'tag_count' => 'int',
'encrypted' => 'boolean',
'completed' => 'boolean',
'user_id' => 'integer',
'user_group_id' => 'integer',
];
}
}

View File

@@ -34,12 +34,6 @@ class TransactionJournalLink extends Model
{
use ReturnsIntegerIdTrait;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
protected $table = 'journal_links';
/**
@@ -109,4 +103,11 @@ class TransactionJournalLink extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
}
}

View File

@@ -37,35 +37,20 @@ class TransactionJournalMeta extends Model
use ReturnsIntegerIdTrait;
use SoftDeletes;
protected $casts
= [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
];
protected $fillable = ['transaction_journal_id', 'name', 'data', 'hash'];
protected $table = 'journal_meta';
/**
* @param mixed $value
*
* @return mixed
*/
public function getDataAttribute($value)
protected function data(): Attribute
{
return json_decode((string) $value, false);
}
/**
* @param mixed $value
*/
public function setDataAttribute($value): void
{
$data = json_encode($value);
$this->attributes['data'] = $data;
$this->attributes['hash'] = hash('sha256', (string) $data);
return Attribute::make(get: fn($value) => json_decode((string) $value, false), set: function ($value) {
$data = json_encode($value);
return ['data' => $data, 'hash' => hash('sha256', (string) $data)];
});
}
public function transactionJournal(): BelongsTo
@@ -79,4 +64,12 @@ class TransactionJournalMeta extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
];
}
}

View File

@@ -36,15 +36,6 @@ class WebhookMessage extends Model
{
use ReturnsIntegerIdTrait;
protected $casts
= [
'sent' => 'boolean',
'errored' => 'boolean',
'uuid' => 'string',
'message' => 'json',
'logs' => 'json',
];
/**
* Route binder. Converts the key in the URL to the specified object (or throw 404).
*
@@ -94,4 +85,14 @@ class WebhookMessage extends Model
get: static fn ($value) => (int) $value,
);
}
protected function casts(): array
{
return [
'sent' => 'boolean',
'errored' => 'boolean',
'uuid' => 'string',
'message' => 'json',
'logs' => 'json',
];
}
}