*/ use HasFactory; public const TYPE_TRIAL_BONUS = 'trial_bonus'; public const TYPE_TOPUP = 'topup'; public const TYPE_LEAD_CHARGE = 'lead_charge'; public const TYPE_REFUND = 'refund'; public const TYPE_MANUAL_ADJUSTMENT = 'manual_adjustment'; public const TYPE_HISTORICAL_IMPORT = 'historical_import'; public const TYPE_CHARGEBACK_WRITEDOWN = 'chargeback_writedown'; public const TYPE_CHARGEBACK_REPAYMENT = 'chargeback_repayment'; public $timestamps = false; protected $fillable = [ 'tenant_id', 'type', 'amount_rub', 'amount_leads', 'balance_rub_after', 'balance_leads_after', 'description', 'related_type', 'related_id', 'user_id', 'admin_user_id', 'created_at', ]; protected function casts(): array { return [ 'tenant_id' => 'integer', 'amount_rub' => 'decimal:2', 'amount_leads' => 'integer', 'balance_rub_after' => 'decimal:2', 'balance_leads_after' => 'integer', 'related_id' => 'integer', 'user_id' => 'integer', 'admin_user_id' => 'integer', 'created_at' => 'datetime', ]; } /** @return BelongsTo */ public function tenant(): BelongsTo { return $this->belongsTo(Tenant::class); } /** @return BelongsTo */ public function user(): BelongsTo { return $this->belongsTo(User::class); } }