diff --git a/src/Http/Requests/Admin/ProductCreateRequest.php b/src/Http/Requests/Admin/ProductCreateRequest.php index a723cc3..a1ce987 100644 --- a/src/Http/Requests/Admin/ProductCreateRequest.php +++ b/src/Http/Requests/Admin/ProductCreateRequest.php @@ -53,8 +53,8 @@ public function rules(): array 'recursive' => ['required_if:type,' . ProductType::SUBSCRIPTION, 'boolean'], // trial 'has_trial' => ['required_if:type,' . ProductType::SUBSCRIPTION, 'boolean'], - 'trial_period' => ['required_if:type,' . ProductType::SUBSCRIPTION. ',has_trial,true', Rule::in(PeriodEnum::getValues())], - 'trial_duration' => ['required_if:type,' . ProductType::SUBSCRIPTION. ',has_trial,true', 'integer', 'gt:0'], + 'trial_period' => ['nullable', 'required_if:has_trial,true', Rule::in(PeriodEnum::getValues())], + 'trial_duration' => ['nullable', 'required_if:has_trial,true', 'integer', 'gt:0'], ]; } } diff --git a/src/Http/Requests/Admin/ProductUpdateRequest.php b/src/Http/Requests/Admin/ProductUpdateRequest.php index 0b24df4..b0df1ca 100644 --- a/src/Http/Requests/Admin/ProductUpdateRequest.php +++ b/src/Http/Requests/Admin/ProductUpdateRequest.php @@ -55,8 +55,8 @@ public function rules(): array 'recursive' => ['required_if:type,' . ProductType::SUBSCRIPTION, 'boolean'], // trial 'has_trial' => ['required_if:type,' . ProductType::SUBSCRIPTION, 'boolean'], - 'trial_period' => ['required_if:type,' . ProductType::SUBSCRIPTION . ',has_trial,true', Rule::in(PeriodEnum::getValues())], - 'trial_duration' => ['required_if:type,' . ProductType::SUBSCRIPTION . ',has_trial,true', 'integer', 'gt:0'], + 'trial_period' => ['nullable', 'required_if:has_trial,true', Rule::in(PeriodEnum::getValues())], + 'trial_duration' => ['nullable', 'required_if:has_trial,true', 'integer', 'gt:0'], ]; } diff --git a/tests/API/AdminProductApiTest.php b/tests/API/AdminProductApiTest.php index 294971e..3e5d805 100644 --- a/tests/API/AdminProductApiTest.php +++ b/tests/API/AdminProductApiTest.php @@ -300,7 +300,7 @@ public function test_create_product_subscription_type_validation(array $data, ar $productable = ExampleProductable::factory()->create(); $productData = Product::factory() - ->subscription() + ->subscriptionWithTrial() ->make([ ...$data, 'productables' => [[ @@ -480,10 +480,10 @@ public function test_update_product_subscription_type_validation(array $data, ar /** @var ExampleProductable $productable */ $productable = ExampleProductable::factory()->create(); /** @var Product $product */ - $product = Product::factory()->subscription()->create(); + $product = Product::factory()->subscriptionWithTrial()->create(); $productData = Product::factory() - ->subscription() + ->subscriptionWithTrial() ->make([ ...$data, 'productables' => [[ @@ -827,9 +827,9 @@ private function invalidSubscriptionDataProvider(): array ['data' => ['subscription_duration' => null], 'errors' => ['subscription_duration' => 'The subscription duration field is required when type is subscription.']], ['data' => ['recursive' => null], 'errors' => ['recursive' => 'The recursive field is required when type is subscription.']], ['data' => ['has_trial' => null], 'errors' => ['has_trial' => 'The has trial field is required when type is subscription.']], - ['data' => ['trial_period' => null], 'errors' => ['trial_period' => 'The trial period field is required when type is subscription.']], + ['data' => ['trial_period' => null], 'errors' => ['trial_period' => 'The trial period field is required when has trial is true.']], ['data' => ['trial_period' => 'invalid_period'], 'errors' => ['trial_period' => 'The selected trial period is invalid.']], - ['data' => ['trial_duration' => null], 'errors' => ['trial_duration' => 'The trial duration field is required when type is subscription.']], + ['data' => ['trial_duration' => null], 'errors' => ['trial_duration' => 'The trial duration field is required when has trial is true.']], ['data' => ['trial_duration' => -1], 'errors' => ['trial_duration' => 'The trial duration must be greater than 0.']], ['data' => ['trial_duration' => 0], 'errors' => ['trial_duration' => 'The trial duration must be greater than 0.']], ];