diff --git a/app/Http/Controllers/PurchaseController.php b/app/Http/Controllers/PurchaseController.php new file mode 100644 index 0000000..64e422c --- /dev/null +++ b/app/Http/Controllers/PurchaseController.php @@ -0,0 +1,90 @@ +toJson(); + } + + /** + * Show the form for creating a new resource. + */ + public function create() + { + // + } + + /** + * Store a newly created resource in storage. + */ + public function store(Request $request) + { + $data = $request->validate([ + 'customer_id' => 'required', + 'amount' => 'nullable', + ]); + + Purchase::create([ + 'customer_id' => $data['customer_id'], + 'amount' => $data['amount'], + ]); + + $customer = Customer::findOrFail( $data['customer_id'] ); + $customer->amount_left = $customer->amount_left - $data['amount']; + $customer->save(); + + return redirect('customer/' . $customer->id); + } + + /** + * Display the specified resource. + */ + public function show(Purchase $purchase) + { + // + } + + /** + * Show the form for editing the specified resource. + */ + public function edit(Purchase $purchase) + { + // + } + + /** + * Update the specified resource in storage. + */ + public function update(Request $request, Purchase $purchase) + { + // + } + + /** + * Remove the specified resource from storage. + */ + public function destroy($id) + { + $purchase = Purchase::findOrFail( $id ); + $customer = Customer::where('id', $purchase->customer_id); + $customer->amount_left = $customer->amount_left + $purchase->amount; + $customer->amount_used = $customer->amount_used - $purchase->amount; + $customer->save(); + $purchase->delete(); + + return response()->json([ + 'success' => true, 'message' => 'Customer deleted successfully' + ]); + } +} diff --git a/app/Models/Purchase.php b/app/Models/Purchase.php new file mode 100644 index 0000000..071e921 --- /dev/null +++ b/app/Models/Purchase.php @@ -0,0 +1,18 @@ + + */ + protected $fillable = [ + 'customer_id', + 'amount', + ]; +} diff --git a/database/migrations/2025_04_19_185408_create_purchases_table.php b/database/migrations/2025_04_19_185408_create_purchases_table.php new file mode 100644 index 0000000..bf0c425 --- /dev/null +++ b/database/migrations/2025_04_19_185408_create_purchases_table.php @@ -0,0 +1,29 @@ +id(); + $table->integer('customer_id')->nullable(); + $table->integer('amount')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('purchases'); + } +};