diff --git a/app/Http/Controllers/PredefinedMutationController.php b/app/Http/Controllers/PredefinedMutationController.php index 83b5929..e669fcd 100644 --- a/app/Http/Controllers/PredefinedMutationController.php +++ b/app/Http/Controllers/PredefinedMutationController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App\Models\Dynamic; +use App\Models\Ledger; use App\Models\PredefinedMutation; use Illuminate\Foundation\Auth\Access\AuthorizesRequests; use Illuminate\Http\Request; @@ -15,20 +16,21 @@ class PredefinedMutationController extends Controller /** * Display a listing of the resource. */ - public function index(Dynamic $dynamic) + public function index(Dynamic $dynamic, Ledger $ledger) { $this->authorize('update', $dynamic); - return Inertia::render('Dynamics/PredefinedMutations/Index', [ + return Inertia::render('Ledgers/PredefinedMutations/Index', [ 'dynamic' => $dynamic, - 'predefined_mutations' => $dynamic->predefinedMutations()->latest()->get(), + 'ledger' => $ledger, + 'predefined_mutations' => $ledger->predefinedMutations()->latest()->get(), ]); } /** * Store a newly created resource in storage. */ - public function store(Request $request, Dynamic $dynamic) + public function store(Request $request, Dynamic $dynamic, Ledger $ledger) { $this->authorize('update', $dynamic); @@ -36,11 +38,10 @@ class PredefinedMutationController extends Controller 'name' => ['required', 'string', 'max:255'], 'description' => ['nullable', 'string'], 'amount' => ['required', 'integer'], - 'type' => ['required', 'string', 'in:reward,penalty'], ]); - $dynamic->predefinedMutations()->create($request->all()); + $ledger->predefinedMutations()->create($request->all()); - return redirect()->route('dynamics.predefined-mutations.index', $dynamic); + return redirect()->route('dynamics.ledgers.predefined-mutations.index', [$dynamic, $ledger]); } } diff --git a/app/Models/Ledger.php b/app/Models/Ledger.php index 13a78f1..22ce39b 100644 --- a/app/Models/Ledger.php +++ b/app/Models/Ledger.php @@ -31,6 +31,11 @@ class Ledger extends Model return $this->hasMany(Mutation::class); } + public function predefinedMutations(): HasMany + { + return $this->hasMany(PredefinedMutation::class); + } + public function media(): \Illuminate\Database\Eloquent\Relations\MorphMany { return $this->morphMany(Media::class, 'mediable'); diff --git a/app/Models/PredefinedMutation.php b/app/Models/PredefinedMutation.php index cdd1a0f..a3eb740 100644 --- a/app/Models/PredefinedMutation.php +++ b/app/Models/PredefinedMutation.php @@ -11,15 +11,14 @@ class PredefinedMutation extends Model use HasFactory; protected $fillable = [ - 'dynamic_id', + 'ledger_id', 'name', 'description', 'amount', - 'type', ]; - public function dynamic(): BelongsTo + public function ledger(): BelongsTo { - return $this->belongsTo(Dynamic::class); + return $this->belongsTo(Ledger::class); } } diff --git a/database/migrations/2026_06_16_225928_create_predefined_mutations_table.php b/database/migrations/2026_06_16_225928_create_predefined_mutations_table.php index 1f157e0..787c51d 100644 --- a/database/migrations/2026_06_16_225928_create_predefined_mutations_table.php +++ b/database/migrations/2026_06_16_225928_create_predefined_mutations_table.php @@ -13,11 +13,10 @@ return new class extends Migration { Schema::create('predefined_mutations', function (Blueprint $table) { $table->id(); - $table->foreignId('dynamic_id')->constrained()->cascadeOnDelete(); + $table->foreignId('ledger_id')->constrained()->cascadeOnDelete(); $table->string('name'); $table->text('description')->nullable(); $table->integer('amount'); - $table->string('type')->default('reward'); $table->timestamps(); }); } diff --git a/resources/js/pages/Dynamics/Settings.vue b/resources/js/pages/Dynamics/Settings.vue index 5aaeb8b..2c7cd12 100644 --- a/resources/js/pages/Dynamics/Settings.vue +++ b/resources/js/pages/Dynamics/Settings.vue @@ -70,12 +70,6 @@ function submit() { - -