|string> */ public function rules(): array { return [ 'name' => 'required|max:100', 'code' => [ 'required', 'max:45', Rule::unique('assets') ->where($this->userCompanyWhere()) ->ignore($this->route()->parameter('asset')), ], 'status' => [ 'required', new Enum(AssetStatus::class), ], 'owner' => [ 'required', Rule::exists('users', 'id') ->where($this->userCompanyWhere()), ], 'address' => 'max:255', 'group_id' => [ 'required', Rule::exists('asset_groups', 'id') ->where($this->userCompanyWhere()), ], 'geo_address_code' => 'max:255', 'acl' => 'required', 'whitelist' => [ 'array', function ($attribute, $value, $fail) { $userCount = User::where("company_id", Auth::user()->company_id)->whereIn('id', $value)->count(); if ($userCount != count($value)) { $fail('The selected user is invalid.'); } } ], 'latitude' => 'numeric', 'longitude' => 'numeric', ]; } public function attributes() { return [ 'name' => __("fields.name"), 'code' => __("fields.code"), 'acl' => __("fields.acl"), 'address' => __("fields.address"), 'owner' => __("fields.owner"), 'status' => __("fields.status"), ]; } }