/**
  * Parse the assignments.
  *
  * @param StreamInterface $stream
  * @param                 $string
  */
 protected function parseAssignments(StreamInterface $stream, &$string)
 {
     $string .= "\n'assignments' => [";
     foreach ($stream->getAssignments() as $assignment) {
         $this->parseAssignment($assignment, $string);
     }
     $string .= "\n],";
 }
 /**
  * Parse the relation methods.
  *
  * @param  StreamInterface $stream
  * @return string
  */
 public function parse(StreamInterface $stream)
 {
     $string = '';
     $assignments = $stream->getAssignments();
     foreach ($assignments->relations() as $assignment) {
         $this->parseAssignment($assignment, $string);
     }
     return $string;
 }
 /**
  * Return the entry validation rules.
  *
  * @param  StreamModel $stream
  * @return string
  */
 public function parse(StreamInterface $stream)
 {
     $string = '[';
     foreach ($stream->getAssignments() as $assignment) {
         $this->parseAssignmentRules($stream, $assignment, $string);
     }
     $string .= "\n]";
     return $string;
 }
 /**
  * Handle the command.
  *
  * @param AssignmentRepositoryInterface $assignments
  */
 public function handle(AssignmentRepositoryInterface $assignments)
 {
     foreach ($this->stream->getAssignments() as $assignment) {
         $assignments->delete($assignment);
     }
 }
 /**
  * Fired when the table starts querying.
  *
  * @param Builder $query
  */
 public function onQuerying(Builder $query)
 {
     $locked = $this->stream->getAssignments()->locked()->pluck('id')->all();
     $assignments = $this->stream->getAssignments()->withFields($this->getOption('skip', []))->pluck('id')->all();
     $query->where('stream_id', $this->stream->getId())->whereNotIn('id', array_merge($locked, $assignments));
 }