original_string: public function where(string $key, string $operation, $value)
      {
          if (str_contains($key, '.')) {
              $fullPath            = explode('.', $key);
              $relationPath        = implode('.', array_slice($fullPath, 0, -1));
              $relationKey         = last($fullPath);
              $result              = array_get($this->relations, $relationPath, ['filters' => [], 'sorts' => []]);
              $result['filters'][] = new Condition($relationKey, $operation, $value);
              array_set($this->relations, $relationPath, $result);
          } else {
              $this->filters[] = new Condition($key, $operation, $value);
          }
          return $this;
      }
code: public function where(string $key, string $operation, $value)
      {
          if (str_contains($key, '.')) {
              $fullPath            = explode('.', $key);
              $relationPath        = implode('.', array_slice($fullPath, 0, -1));
              $relationKey         = last($fullPath);
              $result              = array_get($this->relations, $relationPath, ['filters' => [], 'sorts' => []]);
              $result['filters'][] = new Condition($relationKey, $operation, $value);
              array_set($this->relations, $relationPath, $result);
          } else {
              $this->filters[] = new Condition($key, $operation, $value);
          }
          return $this;
      }
code_tokens: public function where ( string $ key , string $ operation , $ value ) { if ( str_contains ( $ key , '.' ) ) { $ fullPath = explode ( '.' , $ key ) ; $ relationPath = implode ( '.' , array_slice ( $ fullPath , 0 , - 1 ) ) ; $ relationKey = last ( $ fullPath ) ; $ result = array_get ( $ this -> relations , $ relationPath , [ 'filters' => [ ] , 'sorts' => [ ] ] ) ; $ result [ 'filters' ] [ ] = new Condition ( $ relationKey , $ operation , $ value ) ; array_set ( $ this -> relations , $ relationPath , $ result ) ; } else { $ this -> filters [ ] = new Condition ( $ key , $ operation , $ value ) ; } return $ this ; }
docstring: It adds where condition
  
  @param string $key       Column name
  @param string $operation Operation
  @param mixed  $value     Value
  
  @return $this
docstring_tokens: It adds where condition