BatchCreateItemRules.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace App\Http\Requests\API\Task;
  3. use App\Http\Requests\CustomFieldRuleHelper;
  4. use App\Http\Requests\NamingRuleHelper;
  5. use App\Http\Requests\RuleHelper;
  6. use App\Models\Enums\TaskACL;
  7. use Illuminate\Support\Facades\Auth;
  8. use Illuminate\Validation\Rule;
  9. use Illuminate\Validation\Rules\Enum;
  10. class BatchCreateItemRules
  11. {
  12. use RuleHelper, CustomFieldRuleHelper, NamingRuleHelper;
  13. public function rules(array $data): array
  14. {
  15. $rules = [
  16. 'requirement_id' => [
  17. 'required',
  18. Rule::exists('requirements', 'id')->where($this->userCompanyWhere()),
  19. ],
  20. 'asset_group_id' => [
  21. Rule::exists('asset_groups', 'id')->where($this->userCompanyWhere()),
  22. ],
  23. 'assign' => [
  24. Rule::exists('users', 'id')->where($this->userCompanyWhere()),
  25. ],
  26. 'name' => 'required|max:255',
  27. 'begin' => 'date',
  28. 'end' => 'date',
  29. 'mailto' => $this->usersCompanyRules(),
  30. ];
  31. $taskRules = $this->customFieldRuleByGroup("task", ['doc_type', 'task_type', 'doc_stage', "state", "suitability"]);
  32. $namingRuleId = data_get($data, 'naming_rule_id');
  33. if ($namingRuleId > 0) {
  34. $this->namingRuleCheck($namingRuleId);
  35. $namingRules = $this->customFieldRuleByGroup($namingRuleId);
  36. $rules = [...$rules, ... $namingRules];
  37. }
  38. return [...$rules, ...$taskRules];
  39. }
  40. }