3 namespace BookStack\Sorting;
5 use BookStack\Activity\Models\Loggable;
7 use Illuminate\Database\Eloquent\Model;
11 * @property string $name
12 * @property string $sequence
13 * @property Carbon $created_at
14 * @property Carbon $updated_at
16 class SortSet extends Model implements Loggable
19 * @return SortSetOperation[]
21 public function getOperations(): array
23 return SortSetOperation::fromSequence($this->sequence);
27 * @param SortSetOperation[] $options
29 public function setOperations(array $options): void
31 $values = array_map(fn (SortSetOperation $opt) => $opt->value, $options);
32 $this->sequence = implode(',', $values);
35 public function logDescriptor(): string
37 return "({$this->id}) {$this->name}";
40 public function getUrl(): string
42 return url("/settings/sorting/sets/{$this->id}");