diff --git a/app/Livewire/Forms/Studio/Catalog/BottleForm.php b/app/Livewire/Forms/Studio/Catalog/BottleForm.php index 3f7558e..ab9c856 100644 --- a/app/Livewire/Forms/Studio/Catalog/BottleForm.php +++ b/app/Livewire/Forms/Studio/Catalog/BottleForm.php @@ -141,7 +141,6 @@ private function prepareSavedData(): array 'size' => $this->size, 'cost_price' => parseRupiahToInt($this->cost_price == '' ? '0' : $this->cost_price), 'sale_price' => parseRupiahToInt($this->sale_price), - 'point_per_pcs' => round($this->sale_price / 100), 'description' => $this->description, ]; } diff --git a/app/Livewire/Forms/Studio/Catalog/PerfumeForm.php b/app/Livewire/Forms/Studio/Catalog/PerfumeForm.php index c33a5bd..c45df20 100644 --- a/app/Livewire/Forms/Studio/Catalog/PerfumeForm.php +++ b/app/Livewire/Forms/Studio/Catalog/PerfumeForm.php @@ -184,7 +184,6 @@ private function prepareSavedData(): array 'sku' => $this->sku, 'cost_price' => parseRupiahToInt($this->cost_price == '' ? '0' : $this->cost_price), 'sale_price' => parseRupiahToInt($this->sale_price), - 'point_per_ml' => round(parseRupiahToInt($this->sale_price) / 1000), 'base_notes' => $this->base_notes, 'middle_notes' => $this->middle_notes, 'top_notes' => $this->top_notes, diff --git a/app/Livewire/Forms/Studio/Catalog/ProductForm.php b/app/Livewire/Forms/Studio/Catalog/ProductForm.php index f383b7d..2a56c66 100644 --- a/app/Livewire/Forms/Studio/Catalog/ProductForm.php +++ b/app/Livewire/Forms/Studio/Catalog/ProductForm.php @@ -151,7 +151,6 @@ private function prepareSavedData(): array 'sku' => $this->sku, 'cost_price' => parseRupiahToInt($this->cost_price == '' ? '0' : $this->cost_price), 'sale_price' => parseRupiahToInt($this->sale_price), - 'point_per_pcs' => round($this->sale_price / 100), 'description' => $this->description, 'outlet_ids' => $this->outlet_ids, 'image' => $this->image, diff --git a/app/Models/Bottle.php b/app/Models/Bottle.php index a7d000a..ee05ffc 100644 --- a/app/Models/Bottle.php +++ b/app/Models/Bottle.php @@ -24,7 +24,6 @@ protected function casts(): array return [ 'cost_price' => 'int', 'sale_price' => 'int', - 'point_per_pcs' => 'int', ]; } diff --git a/app/Models/Perfume.php b/app/Models/Perfume.php index cc716b2..fcf5dc6 100644 --- a/app/Models/Perfume.php +++ b/app/Models/Perfume.php @@ -27,7 +27,6 @@ protected function casts(): array 'concentration' => Concentration::class, 'cost_price' => 'int', 'sale_price' => 'int', - 'point_per_ml' => 'int', ]; } diff --git a/app/Models/Product.php b/app/Models/Product.php index 11c3e4d..f37b5c8 100644 --- a/app/Models/Product.php +++ b/app/Models/Product.php @@ -24,7 +24,6 @@ protected function casts(): array return [ 'cost_price' => 'int', 'sale_price' => 'int', - 'point_per_pcs' => 'int', ]; } diff --git a/database/factories/BottleFactory.php b/database/factories/BottleFactory.php index 98e4f3b..e455bbb 100644 --- a/database/factories/BottleFactory.php +++ b/database/factories/BottleFactory.php @@ -19,7 +19,6 @@ public function definition(): array 'size' => $this->faker->randomNumber(2), 'cost_price' => $this->faker->randomNumber(2), 'sale_price' => $this->faker->randomNumber(2), - 'point_per_pcs' => round($costPrice / 100), 'description' => $this->faker->sentence(), ]; } diff --git a/database/factories/PerfumeFactory.php b/database/factories/PerfumeFactory.php index 1eb5ff0..f6144da 100644 --- a/database/factories/PerfumeFactory.php +++ b/database/factories/PerfumeFactory.php @@ -24,7 +24,6 @@ public function definition(): array 'concentration' => $this->faker->randomElement(Concentration::cases()), 'cost_price' => $this->faker->numberBetween(50000, 250000), 'sale_price' => $this->faker->numberBetween(80000, 400000), - 'point_per_ml' => $this->faker->numberBetween(1, 30), 'base_notes' => $this->faker->optional()->words(3, true), 'middle_notes' => $this->faker->optional()->words(3, true), 'top_notes' => $this->faker->optional()->words(3, true), diff --git a/database/factories/ProductFactory.php b/database/factories/ProductFactory.php index 70565ae..01c168d 100644 --- a/database/factories/ProductFactory.php +++ b/database/factories/ProductFactory.php @@ -20,7 +20,6 @@ public function definition(): array 'sku' => strtoupper($this->faker->unique()->bothify('PRD-#####')), 'cost_price' => $this->faker->numberBetween(20000, 150000), 'sale_price' => $this->faker->numberBetween(30000, 200000), - 'point_per_pcs' => $this->faker->numberBetween(1, 50), 'description' => $this->faker->optional()->paragraph(), ]; } diff --git a/database/migrations/2025_10_01_112147_create_perfumes_table.php b/database/migrations/2025_10_01_112147_create_perfumes_table.php index e264824..d24a775 100644 --- a/database/migrations/2025_10_01_112147_create_perfumes_table.php +++ b/database/migrations/2025_10_01_112147_create_perfumes_table.php @@ -21,7 +21,6 @@ public function up(): void $table->enum('concentration', Concentration::values())->default(Concentration::EXTRAIT_DE_PERFUME)->comment(Concentration::comment()); $table->unsignedInteger('cost_price')->default(0); $table->unsignedInteger('sale_price')->default(0); - $table->unsignedInteger('point_per_ml'); $table->string('base_notes')->nullable(); $table->string('middle_notes')->nullable(); $table->string('top_notes')->nullable(); diff --git a/database/migrations/2025_10_02_013524_create_products_table.php b/database/migrations/2025_10_02_013524_create_products_table.php index 1b58970..1f059ee 100644 --- a/database/migrations/2025_10_02_013524_create_products_table.php +++ b/database/migrations/2025_10_02_013524_create_products_table.php @@ -18,7 +18,6 @@ public function up(): void $table->string('sku', 20)->unique(); $table->unsignedInteger('cost_price')->default(0); $table->unsignedInteger('sale_price')->default(0); - $table->unsignedInteger('point_per_pcs'); $table->text('description')->nullable(); $table->timestamp('created_at')->useCurrent(); $table->timestamp('updated_at')->nullable()->useCurrentOnUpdate(); diff --git a/database/migrations/2025_10_02_020223_create_bottles_table.php b/database/migrations/2025_10_02_020223_create_bottles_table.php index bedcb4a..b2a6911 100644 --- a/database/migrations/2025_10_02_020223_create_bottles_table.php +++ b/database/migrations/2025_10_02_020223_create_bottles_table.php @@ -18,7 +18,6 @@ public function up(): void $table->unsignedInteger('size'); $table->unsignedInteger('cost_price')->default(0); $table->unsignedInteger('sale_price')->default(0); - $table->unsignedInteger('point_per_pcs'); $table->text('description')->nullable(); $table->timestamp('created_at')->useCurrent(); $table->timestamp('updated_at')->nullable()->useCurrentOnUpdate(); diff --git a/database/seeders/BottleSeeder.php b/database/seeders/BottleSeeder.php index 890f803..2a9e9ea 100644 --- a/database/seeders/BottleSeeder.php +++ b/database/seeders/BottleSeeder.php @@ -33,7 +33,6 @@ public function run(): void 'size' => $bottle['size'], 'cost_price' => $bottle['cost_price'], 'sale_price' => $bottle['cost_price'] * 2, - 'point_per_pcs' => round($bottle['cost_price'] / 100), 'description' => fake()->sentence(10), ]); diff --git a/database/seeders/PerfumeSeeder.php b/database/seeders/PerfumeSeeder.php index fd3cbf4..7de3e1d 100644 --- a/database/seeders/PerfumeSeeder.php +++ b/database/seeders/PerfumeSeeder.php @@ -44,7 +44,6 @@ public function run(): void 'concentration' => fake()->randomElement(Concentration::values()), 'cost_price' => fake()->numberBetween(5, 11) * 100, 'sale_price' => $salePrice, - 'point_per_ml' => round($salePrice / 100), 'base_notes' => fake()->optional()->randomElement(['Amber', 'Musk', 'Vanilla', 'Sandalwood', 'Leather']), 'middle_notes' => fake()->optional()->randomElement(['Rose', 'Jasmine', 'Patchouli', 'Cedarwood', 'Iris']), 'top_notes' => fake()->optional()->randomElement(['Citrus', 'Bergamot', 'Pepper', 'Mint', 'Lavender']), diff --git a/database/seeders/ProductSeeder.php b/database/seeders/ProductSeeder.php index 632f476..f110cac 100644 --- a/database/seeders/ProductSeeder.php +++ b/database/seeders/ProductSeeder.php @@ -36,7 +36,6 @@ public function run(): void 'sku' => $sku, 'cost_price' => fake()->numberBetween(15, 80) * 1000, 'sale_price' => $salePrice, - 'point_per_pcs' => round($salePrice / 100), 'description' => fake()->sentence(12), ]); diff --git a/tests/Feature/Livewire/Studio/Catalog/Bottle/CreateTest.php b/tests/Feature/Livewire/Studio/Catalog/Bottle/CreateTest.php index f15497b..ad8f0f8 100644 --- a/tests/Feature/Livewire/Studio/Catalog/Bottle/CreateTest.php +++ b/tests/Feature/Livewire/Studio/Catalog/Bottle/CreateTest.php @@ -91,7 +91,6 @@ function mountBottleCreateComponent(User $user) expect($bottle->size)->toBe(100); expect($bottle->cost_price)->toBe(50000); expect($bottle->sale_price)->toBe(75000); - expect($bottle->point_per_pcs)->toBe(750); // 75000 / 100 expect($bottle->description)->toBe($data['description']); expect($bottle->outlets)->toHaveCount(2); }); @@ -342,5 +341,4 @@ function mountBottleCreateComponent(User $user) $bottle = Bottle::where('size', 500)->first(); expect($bottle->cost_price)->toBe(5000000); expect($bottle->sale_price)->toBe(7500000); - expect($bottle->point_per_pcs)->toBe(75000); // 7500000 / 100 }); diff --git a/tests/Feature/Livewire/Studio/Catalog/Bottle/EditTest.php b/tests/Feature/Livewire/Studio/Catalog/Bottle/EditTest.php index 7f996db..9592f0f 100644 --- a/tests/Feature/Livewire/Studio/Catalog/Bottle/EditTest.php +++ b/tests/Feature/Livewire/Studio/Catalog/Bottle/EditTest.php @@ -112,7 +112,6 @@ function mountBottleEditComponent(User $user, Bottle $bottle) expect($bottle->size)->toBe(100); expect($bottle->cost_price)->toBe(40000); expect($bottle->sale_price)->toBe(60000); - expect($bottle->point_per_pcs)->toBe(600); // 60000 / 100 expect($bottle->description)->toBe($updateData['description']); expect($bottle->outlets)->toHaveCount(2); }); diff --git a/tests/Feature/Livewire/Studio/Catalog/Perfume/CreateTest.php b/tests/Feature/Livewire/Studio/Catalog/Perfume/CreateTest.php index 7307276..9b647e0 100644 --- a/tests/Feature/Livewire/Studio/Catalog/Perfume/CreateTest.php +++ b/tests/Feature/Livewire/Studio/Catalog/Perfume/CreateTest.php @@ -117,7 +117,6 @@ function mountPerfumeCreateComponent(User $user) expect($perfume->brand_id)->toBe($data['brand_id']); expect($perfume->cost_price)->toBe(150000); expect($perfume->sale_price)->toBe(250000); - expect($perfume->point_per_ml)->toBe(250); // 250000 / 1000 expect($perfume->concentration->value)->toBe($data['concentration']); expect($perfume->base_notes)->toBe($data['base_notes']); expect($perfume->middle_notes)->toBe($data['middle_notes']); @@ -453,5 +452,4 @@ function mountPerfumeCreateComponent(User $user) $perfume = Perfume::where('sku', 'EP001')->first(); expect($perfume->cost_price)->toBe(10000000); expect($perfume->sale_price)->toBe(15000000); - expect($perfume->point_per_ml)->toBe(15000); // 15000000 / 1000 }); diff --git a/tests/Feature/Livewire/Studio/Catalog/Perfume/EditTest.php b/tests/Feature/Livewire/Studio/Catalog/Perfume/EditTest.php index 32150fa..57b2cbd 100644 --- a/tests/Feature/Livewire/Studio/Catalog/Perfume/EditTest.php +++ b/tests/Feature/Livewire/Studio/Catalog/Perfume/EditTest.php @@ -148,7 +148,6 @@ function mountPerfumeEditComponent(User $user, Perfume $perfume) expect($perfume->brand_id)->toBe($updateData['brand_id']); expect($perfume->cost_price)->toBe(150000); expect($perfume->sale_price)->toBe(300000); - expect($perfume->point_per_ml)->toBe(300); // 300000 / 1000 expect($perfume->concentration->value)->toBe($updateData['concentration']); expect($perfume->base_notes)->toBe($updateData['base_notes']); expect($perfume->middle_notes)->toBe($updateData['middle_notes']); diff --git a/tests/Feature/Livewire/Studio/Catalog/Product/CreateTest.php b/tests/Feature/Livewire/Studio/Catalog/Product/CreateTest.php index 5fcaa06..7831aeb 100644 --- a/tests/Feature/Livewire/Studio/Catalog/Product/CreateTest.php +++ b/tests/Feature/Livewire/Studio/Catalog/Product/CreateTest.php @@ -91,7 +91,6 @@ function mountProductCreateComponent(User $user) expect($product->sku)->toBe($data['sku']); expect($product->cost_price)->toBe(10000); expect($product->sale_price)->toBe(15000); - expect($product->point_per_pcs)->toBe(150); // 15000 / 100 expect($product->description)->toBe($data['description']); expect($product->outlets)->toHaveCount(2); }); @@ -349,5 +348,4 @@ function mountProductCreateComponent(User $user) $product = Product::where('sku', 'EP001')->first(); expect($product->cost_price)->toBe(10000000); expect($product->sale_price)->toBe(15000000); - expect($product->point_per_pcs)->toBe(150000); // 15000000 / 100 }); diff --git a/tests/Feature/Livewire/Studio/Catalog/Product/EditTest.php b/tests/Feature/Livewire/Studio/Catalog/Product/EditTest.php index fc0db89..09fbb4a 100644 --- a/tests/Feature/Livewire/Studio/Catalog/Product/EditTest.php +++ b/tests/Feature/Livewire/Studio/Catalog/Product/EditTest.php @@ -112,7 +112,6 @@ function mountProductEditComponent(User $user, Product $product) expect($product->sku)->toBe($updateData['sku']); expect($product->cost_price)->toBe(12000); expect($product->sale_price)->toBe(18000); - expect($product->point_per_pcs)->toBe(180); // 18000 / 100 expect($product->description)->toBe($updateData['description']); expect($product->outlets)->toHaveCount(2); });