1: <?php
2:
3: namespace Aurora\System\Models;
4:
5: use Aurora\System\Classes\Model as ClassesModel;
6: use Barryvdh\LaravelIdeHelper\Console\ModelsCommand;
7: use Barryvdh\LaravelIdeHelper\Contracts\ModelHookInterface;
8: use Illuminate\Database\Eloquent\Model;
9:
10: class Hook implements ModelHookInterface
11: {
12: public function run(ModelsCommand $command, Model $model): void
13: {
14: if (! $model instanceof ClassesModel) {
15: return;
16: }
17:
18: $modelClass = '\\' . \Illuminate\Database\Eloquent\Builder::class . '|\\' . get_class($model);
19: $whereParams = ['Closure|string|array|\Illuminate\Database\Query\Expression $column', 'mixed $operator = null', 'mixed $value = null', 'string $boolean = \'and\''];
20: $command->setMethod('where', $modelClass, $whereParams);
21: $command->setMethod('firstWhere', $modelClass, $whereParams);
22:
23: $whereInParams = ['string $column', 'mixed $values', 'string $boolean = \'and\'', 'bool $not = false'];
24: $command->setMethod('whereIn', $modelClass, $whereInParams);
25:
26: $command->setMethod('find', $modelClass, ['int|string $id', 'array|string $columns = [\'*\']']);
27: $command->setMethod('findOrFail', $modelClass, ['int|string $id', 'mixed $id', 'Closure|array|string $columns = [\'*\']', 'Closure $callback = null']);
28:
29: $command->setMethod('first', $modelClass, ['array|string $columns = [\'*\']']);
30:
31: $command->setMethod('count', 'int', ['string $columns = \'*\'']);
32: }
33: }
34: