annotate src/Models/BaseModel.php @ 1:56d9c64d64aa

Setting up the base, still have plenty of work to be done here.
author luka
date Mon, 09 Jun 2025 23:07:17 -0400
parents
children b44434aaa767
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
1 <?php
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
2
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
3 namespace Wizard\Framework\Models;
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
4
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
5 use Wizard\Framework\Traits\Filterable;
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
6 use Illuminate\Database\Eloquent\Model;
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
7
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
8 class BaseModel extends Model
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
9 {
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
10 use Filterable;
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
11
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
12 protected $default_relations = [];
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
13
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
14 public static function boot(): void
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
15 {
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
16 parent::boot();
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
17
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
18 self::creating(function ($item) {
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
19 $item->created_by = \Auth::user()?->id ?? '';
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
20 $item->updated_by = \Auth::user()?->id ?? '';
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
21 });
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
22
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
23 self::saving(function ($item) {
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
24 $item->updated_by = \Auth::user()?->id ?? '';
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
25 });
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
26 }
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
27
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
28 protected static function load_auxilary_data()
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
29 {
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
30 $data = [];
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
31
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
32 $instance = new static;
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
33
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
34 foreach ($instance->default_relations as $relation) {
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
35 $related_model = $instance->$relation()->getRelated();
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
36 $related_table = $related_model->getTable();
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
37 $data[$related_table] = $related_model->all()->pluck('name', 'id')->toArray();
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
38 }
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
39
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
40 return $data;
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
41 }
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
42
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
43 public static function load_index()
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
44 {
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
45 return static::load_auxilary_data();
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
46 }
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
47
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
48 public static function load_create()
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
49 {
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
50 return static::load_auxilary_data();
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
51 }
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
52
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
53 public static function load_edit()
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
54 {
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
55 return static::load_auxilary_data();
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
56 }
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
57
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
58 /**
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
59 * Retrieve a query builder instance with default relations loaded.
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
60 *
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
61 * @return \Illuminate\Database\Eloquent\Builder
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
62 */
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
63 public static function data_query()
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
64 {
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
65 $query = static::query();
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
66
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
67 $instance = new static;
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
68
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
69 foreach ($instance->default_relations as $relation) {
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
70 $query->with($relation);
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
71 }
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
72
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
73 return $query;
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
74 }
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
75
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
76 /**
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
77 * Retrieve a query builder instance with default relations loaded.
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
78 *
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
79 * @return \Illuminate\Database\Eloquent\Builder
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
80 */
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
81 public static function get_data(array $validated = [])
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
82 {
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
83 $query = static::data_query();
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
84
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
85 $query->filter($validated);
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
86
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
87 return $query->get();
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
88 }
56d9c64d64aa Setting up the base, still have plenty of work to be done here.
luka
parents:
diff changeset
89 }