Compare commits
No commits in common. "c7812ea0fb8afd3abb27c8708ff43c921b9f314e" and "fd3565fd642dd9866721150958317a8980d50c90" have entirely different histories.
c7812ea0fb
...
fd3565fd64
@ -1,82 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Kategori;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class KategoriController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return response()->json(
|
||||
Kategori::withCount('produk')->get()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'nama' => 'required|string|max:100',
|
||||
],
|
||||
[
|
||||
'nama' => 'Nama kategori harus diisi.'
|
||||
]);
|
||||
|
||||
Kategori::create($validated);
|
||||
|
||||
|
||||
return response()->json([
|
||||
'message' => 'Kategori berhasil dibuat'
|
||||
],201);
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*/
|
||||
public function show(int $id)
|
||||
{
|
||||
return response()->json(
|
||||
Kategori::with('items.produk.foto')->find($id)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(Request $request, int $id)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'nama' => 'required|string|max:100',
|
||||
],
|
||||
[
|
||||
'nama' => 'Nama Kategori harus diisi.'
|
||||
]);
|
||||
|
||||
$Kategori = Kategori::findOrFail($id);
|
||||
|
||||
$Kategori->update($validated);
|
||||
|
||||
return response()->json([
|
||||
'message' => 'Kategori berhasil diupdate'
|
||||
],200);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy(int $id)
|
||||
{
|
||||
Kategori::findOrFail($id)->delete();
|
||||
|
||||
return response()->json([
|
||||
'message' => 'Kategori berhasil dihapus'
|
||||
], 204);
|
||||
}
|
||||
}
|
@ -17,7 +17,7 @@ class ProdukController extends Controller
|
||||
public function index()
|
||||
{
|
||||
return response()->json(
|
||||
Produk::withCount('items')->with('foto', 'kategori')->get()
|
||||
Produk::withCount('items')->with('foto')->get()
|
||||
);
|
||||
}
|
||||
|
||||
@ -28,16 +28,16 @@ class ProdukController extends Controller
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'nama' => 'required|string|max:100',
|
||||
'id_kategori' => 'required|exists:users,id',
|
||||
'kategori' => 'required|in:cincin,gelang,kalung,anting',
|
||||
'berat' => 'required|numeric',
|
||||
'kadar' => 'required|integer',
|
||||
'harga_per_gram' => 'required|numeric',
|
||||
'harga_jual' => 'required|numeric',
|
||||
'id_user' => 'nullable|exists:users,id',
|
||||
'id_user' => 'nullable|exists:users,id', // untuk mengambil foto sementara
|
||||
],
|
||||
[
|
||||
'nama.required' => 'Nama produk harus diisi.',
|
||||
'id_kategori' => 'Kategori tidak valid.',
|
||||
'kategori.in' => 'Kategori harus salah satu dari cincin, gelang, kalung, atau anting.',
|
||||
'berat.required' => 'Berat harus diisi.',
|
||||
'kadar.required' => 'Kadar harus diisi',
|
||||
'harga_per_gram.required' => 'Harga per gram harus diisi',
|
||||
@ -49,7 +49,7 @@ class ProdukController extends Controller
|
||||
// Create produk
|
||||
$produk = Produk::create([
|
||||
'nama' => $validated['nama'],
|
||||
'id_kategori' => $validated['id_kategori'],
|
||||
'kategori' => $validated['kategori'],
|
||||
'berat' => $validated['berat'],
|
||||
'kadar' => $validated['kadar'],
|
||||
'harga_per_gram' => $validated['harga_per_gram'],
|
||||
@ -92,7 +92,7 @@ class ProdukController extends Controller
|
||||
*/
|
||||
public function show(int $id)
|
||||
{
|
||||
$produk = Produk::with('foto', 'items', 'kategori')->findOrFail($id);
|
||||
$produk = Produk::with('foto', 'items')->findOrFail($id);
|
||||
return response()->json($produk);
|
||||
}
|
||||
|
||||
@ -103,7 +103,7 @@ class ProdukController extends Controller
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'nama' => 'required|string|max:100',
|
||||
'id_kategori' => 'required|exists:kategoris,id',
|
||||
'kategori' => 'required|in:cincin,gelang,kalung,anting',
|
||||
'berat' => 'required|numeric',
|
||||
'kadar' => 'required|integer',
|
||||
'harga_per_gram' => 'required|numeric',
|
||||
@ -113,7 +113,7 @@ class ProdukController extends Controller
|
||||
],
|
||||
[
|
||||
'nama.required' => 'Nama produk harus diisi.',
|
||||
'id_kategori' => 'Kategori tidak valid.',
|
||||
'kategori.in' => 'Kategori harus salah satu dari cincin, gelang, kalung, atau anting.',
|
||||
'berat.required' => 'Berat harus diisi.',
|
||||
'kadar.required' => 'Kadar harus diisi',
|
||||
'harga_per_gram.required' => 'Harga per gram harus diisi',
|
||||
|
@ -15,8 +15,6 @@ class Foto extends Model
|
||||
'url',
|
||||
];
|
||||
|
||||
protected $hidden = ['created_at', 'updated_at', 'deleted_at'];
|
||||
|
||||
public function produk()
|
||||
{
|
||||
return $this->belongsTo(Produk::class, 'id_produk');
|
||||
|
@ -10,6 +10,4 @@ class FotoSementara extends Model
|
||||
'id_user',
|
||||
'url',
|
||||
];
|
||||
|
||||
protected $hidden = ['created_at', 'updated_at', 'deleted_at'];
|
||||
}
|
||||
|
@ -16,8 +16,6 @@ class Item extends Model
|
||||
'is_sold',
|
||||
];
|
||||
|
||||
protected $hidden = ['created_at', 'updated_at', 'deleted_at'];
|
||||
|
||||
public function produk()
|
||||
{
|
||||
return $this->belongsTo(Produk::class, 'id_produk');
|
||||
|
@ -16,8 +16,6 @@ class ItemTransaksi extends Model
|
||||
'harga_deal'
|
||||
];
|
||||
|
||||
protected $hidden = ['created_at', 'updated_at', 'deleted_at'];
|
||||
|
||||
public function transaksi()
|
||||
{
|
||||
return $this->belongsTo(Transaksi::class, 'id_transaksi');
|
||||
|
@ -1,22 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class Kategori extends Model
|
||||
{
|
||||
/** @use HasFactory<\Database\Factories\KategoriFactory> */
|
||||
use HasFactory, SoftDeletes;
|
||||
|
||||
protected $fillable = ['nama'];
|
||||
|
||||
protected $hidden = ['created_at', 'updated_at', 'deleted_at'];
|
||||
|
||||
public function produks()
|
||||
{
|
||||
return $this->hasMany(Produk::class, 'id_kategori');
|
||||
}
|
||||
}
|
@ -15,7 +15,6 @@ class Nampan extends Model
|
||||
];
|
||||
protected $appends = ['berat_total'];
|
||||
|
||||
protected $hidden = ['created_at', 'updated_at', 'deleted_at'];
|
||||
|
||||
public function items()
|
||||
{
|
||||
|
@ -12,15 +12,13 @@ class Produk extends Model
|
||||
|
||||
protected $fillable = [
|
||||
'nama',
|
||||
'id_kategori',
|
||||
'kategori',
|
||||
'berat',
|
||||
'kadar',
|
||||
'harga_per_gram',
|
||||
'harga_jual',
|
||||
];
|
||||
|
||||
protected $hidden = ['created_at', 'updated_at', 'deleted_at'];
|
||||
|
||||
public function items()
|
||||
{
|
||||
return $this->hasMany(Item::class, 'id_produk');
|
||||
@ -30,9 +28,4 @@ class Produk extends Model
|
||||
{
|
||||
return $this->hasMany(Foto::class, 'id_produk');
|
||||
}
|
||||
|
||||
public function kategori()
|
||||
{
|
||||
return $this->belongsTo(Kategori::class, 'id_kategori');
|
||||
}
|
||||
}
|
||||
|
@ -16,8 +16,6 @@ class Sales extends Model
|
||||
'alamat'
|
||||
];
|
||||
|
||||
protected $hidden = ['created_at', 'updated_at', 'deleted_at'];
|
||||
|
||||
public function transaksi()
|
||||
{
|
||||
return $this->hasMany(Transaksi::class, 'id_sales');
|
||||
|
@ -20,8 +20,6 @@ class Transaksi extends Model
|
||||
'created_at',
|
||||
];
|
||||
|
||||
protected $hidden = ['updated_at', 'deleted_at'];
|
||||
|
||||
public function kasir()
|
||||
{
|
||||
return $this->belongsTo(User::class, 'id_kasir');
|
||||
|
@ -1,23 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Factories;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||
|
||||
/**
|
||||
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Kategori>
|
||||
*/
|
||||
class KategoriFactory extends Factory
|
||||
{
|
||||
/**
|
||||
* Define the model's default state.
|
||||
*
|
||||
* @return array<string, mixed>
|
||||
*/
|
||||
public function definition(): array
|
||||
{
|
||||
return [
|
||||
'nama' => $this->faker->word(),
|
||||
];
|
||||
}
|
||||
}
|
@ -2,7 +2,6 @@
|
||||
|
||||
namespace Database\Factories;
|
||||
|
||||
use App\Models\Kategori;
|
||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||
|
||||
/**
|
||||
@ -19,10 +18,9 @@ class ProdukFactory extends Factory
|
||||
{
|
||||
$harga_per_gram = $this->faker->numberBetween(80, 120) * 10000;
|
||||
$berat = $this->faker->randomFloat(2, 1, 10);
|
||||
$kategoriList = Kategori::all()->pluck('id')->toArray();
|
||||
return [
|
||||
'nama' => $this->faker->words(3, true),
|
||||
'id_kategori' => $this->faker->randomElement($kategoriList),
|
||||
'kategori' => $this->faker->randomElement(['cincin', 'gelang', 'kalung', 'anting']),
|
||||
'berat' => $berat,
|
||||
'kadar' => $this->faker->numberBetween(10, 24),
|
||||
'harga_per_gram' => $harga_per_gram,
|
||||
|
@ -1,29 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('kategoris', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('nama', 100);
|
||||
$table->timestamps();
|
||||
$table->softDeletes();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('kategoris');
|
||||
}
|
||||
};
|
@ -14,7 +14,7 @@ return new class extends Migration
|
||||
Schema::create('produks', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('nama', 100);
|
||||
$table->foreignId('id_kategori')->constrained('kategoris');
|
||||
$table->enum('kategori', ['cincin', 'gelang', 'kalung', 'anting']);
|
||||
$table->float('berat');
|
||||
$table->integer('kadar');
|
||||
$table->double('harga_per_gram');
|
||||
|
@ -3,7 +3,6 @@
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Item;
|
||||
use App\Models\Kategori;
|
||||
use App\Models\Nampan;
|
||||
use App\Models\Produk;
|
||||
use App\Models\Sales;
|
||||
@ -37,13 +36,6 @@ class DatabaseSeeder extends Seeder
|
||||
}
|
||||
}
|
||||
|
||||
$kategoriList = ['cincin', 'gelang', 'kalung', 'anting'];
|
||||
foreach ($kategoriList as $kategori) {
|
||||
Kategori::factory()->create([
|
||||
'nama' => $kategori
|
||||
]);
|
||||
}
|
||||
|
||||
Produk::factory(10)->create()->each(function ($produk) {
|
||||
// setiap produk punya 1-3 foto
|
||||
$jumlah_foto = rand(1, 3);
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 138 KiB |
Loading…
Reference in New Issue
Block a user