Skip to content

Commit c8b5433

Browse files
committed
feat: update implementation for static schemas
1 parent 91b092c commit c8b5433

18 files changed

+104
-126
lines changed

src/Schema.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333

3434
abstract class Schema extends BaseSchema implements CountableSchema
3535
{
36-
3736
/**
3837
* The relationships that should always be eager loaded.
3938
*
@@ -86,6 +85,14 @@ public function repository(): Repository
8685
);
8786
}
8887

88+
/**
89+
* @return class-string<Model>
90+
*/
91+
public function model(): string
92+
{
93+
return $this->static->getModel();
94+
}
95+
8996
/**
9097
* @return Model
9198
*/
@@ -354,5 +361,4 @@ protected function driver(): Driver
354361
{
355362
return new StandardDriver($this->newInstance());
356363
}
357-
358364
}

tests/app/Schemas/CarOwnerSchema.php

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace App\Schemas;
1313

1414
use App\Models\CarOwner;
15+
use LaravelJsonApi\Core\Schema\Attributes\Model;
1516
use LaravelJsonApi\Eloquent\Contracts\Paginator;
1617
use LaravelJsonApi\Eloquent\Fields\DateTime;
1718
use LaravelJsonApi\Eloquent\Fields\ID;
@@ -21,16 +22,9 @@
2122
use LaravelJsonApi\Eloquent\Filters\WhereIdIn;
2223
use LaravelJsonApi\Eloquent\Schema;
2324

25+
#[Model(CarOwner::class)]
2426
class CarOwnerSchema extends Schema
2527
{
26-
27-
/**
28-
* The model the schema corresponds to.
29-
*
30-
* @var string
31-
*/
32-
public static string $model = CarOwner::class;
33-
3428
/**
3529
* @inheritDoc
3630
*/

tests/app/Schemas/CarSchema.php

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace App\Schemas;
1313

1414
use App\Models\Car;
15+
use LaravelJsonApi\Core\Schema\Attributes\Model;
1516
use LaravelJsonApi\Eloquent\Contracts\Paginator;
1617
use LaravelJsonApi\Eloquent\Fields\DateTime;
1718
use LaravelJsonApi\Eloquent\Fields\ID;
@@ -20,16 +21,9 @@
2021
use LaravelJsonApi\Eloquent\Filters\WhereIdIn;
2122
use LaravelJsonApi\Eloquent\Schema;
2223

24+
#[Model(Car::class)]
2325
class CarSchema extends Schema
2426
{
25-
26-
/**
27-
* The model the schema corresponds to.
28-
*
29-
* @var string
30-
*/
31-
public static string $model = Car::class;
32-
3327
/**
3428
* @inheritDoc
3529
*/

tests/app/Schemas/CommentSchema.php

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
use App\Models\Comment;
1515
use LaravelJsonApi\Contracts\Pagination\Paginator;
16+
use LaravelJsonApi\Core\Schema\Attributes\Model;
1617
use LaravelJsonApi\Eloquent\Fields\DateTime;
1718
use LaravelJsonApi\Eloquent\Fields\ID;
1819
use LaravelJsonApi\Eloquent\Fields\Relations\BelongsTo;
@@ -22,16 +23,9 @@
2223
use LaravelJsonApi\Eloquent\Pagination\PagePagination;
2324
use LaravelJsonApi\Eloquent\Schema;
2425

26+
#[Model(Comment::class)]
2527
class CommentSchema extends Schema
2628
{
27-
28-
/**
29-
* The model the schema corresponds to.
30-
*
31-
* @var string
32-
*/
33-
public static string $model = Comment::class;
34-
3529
/**
3630
* @inheritDoc
3731
*/

tests/app/Schemas/CountrySchema.php

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace App\Schemas;
1313

1414
use App\Models\Country;
15+
use LaravelJsonApi\Core\Schema\Attributes\Model;
1516
use LaravelJsonApi\Eloquent\Contracts\Paginator;
1617
use LaravelJsonApi\Eloquent\Fields\DateTime;
1718
use LaravelJsonApi\Eloquent\Fields\ID;
@@ -20,16 +21,9 @@
2021
use LaravelJsonApi\Eloquent\Filters\WhereIdIn;
2122
use LaravelJsonApi\Eloquent\Schema;
2223

24+
#[Model(Country::class)]
2325
class CountrySchema extends Schema
2426
{
25-
26-
/**
27-
* The model the schema corresponds to.
28-
*
29-
* @var string
30-
*/
31-
public static string $model = Country::class;
32-
3327
/**
3428
* @inheritDoc
3529
*/

tests/app/Schemas/ImageSchema.php

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace App\Schemas;
1313

1414
use App\Models\Image;
15+
use LaravelJsonApi\Core\Schema\Attributes\Model;
1516
use LaravelJsonApi\Eloquent\Contracts\Paginator;
1617
use LaravelJsonApi\Eloquent\Fields\DateTime;
1718
use LaravelJsonApi\Eloquent\Fields\ID;
@@ -20,16 +21,9 @@
2021
use LaravelJsonApi\Eloquent\Filters\WhereIdIn;
2122
use LaravelJsonApi\Eloquent\Schema;
2223

24+
#[Model(Image::class)]
2325
class ImageSchema extends Schema
2426
{
25-
26-
/**
27-
* The model the schema corresponds to.
28-
*
29-
* @var string
30-
*/
31-
public static string $model = Image::class;
32-
3327
/**
3428
* @inheritDoc
3529
*/

tests/app/Schemas/MechanicSchema.php

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace App\Schemas;
1313

1414
use App\Models\Mechanic;
15+
use LaravelJsonApi\Core\Schema\Attributes\Model;
1516
use LaravelJsonApi\Eloquent\Contracts\Paginator;
1617
use LaravelJsonApi\Eloquent\Fields\DateTime;
1718
use LaravelJsonApi\Eloquent\Fields\ID;
@@ -20,16 +21,9 @@
2021
use LaravelJsonApi\Eloquent\Filters\WhereIdIn;
2122
use LaravelJsonApi\Eloquent\Schema;
2223

24+
#[Model(Mechanic::class)]
2325
class MechanicSchema extends Schema
2426
{
25-
26-
/**
27-
* The model the schema corresponds to.
28-
*
29-
* @var string
30-
*/
31-
public static string $model = Mechanic::class;
32-
3327
/**
3428
* @inheritDoc
3529
*/

tests/app/Schemas/PhoneSchema.php

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
use App\Models\Phone;
1515
use LaravelJsonApi\Contracts\Pagination\Paginator;
16+
use LaravelJsonApi\Core\Schema\Attributes\Model;
1617
use LaravelJsonApi\Eloquent\Fields\DateTime;
1718
use LaravelJsonApi\Eloquent\Fields\ID;
1819
use LaravelJsonApi\Eloquent\Fields\Relations\BelongsTo;
@@ -21,16 +22,9 @@
2122
use LaravelJsonApi\Eloquent\Filters\WhereIdIn;
2223
use LaravelJsonApi\Eloquent\Schema;
2324

25+
#[Model(Phone::class)]
2426
class PhoneSchema extends Schema
2527
{
26-
27-
/**
28-
* The model the schema corresponds to.
29-
*
30-
* @var string
31-
*/
32-
public static string $model = Phone::class;
33-
3428
/**
3529
* @inheritDoc
3630
*/

tests/app/Schemas/PostSchema.php

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
use App\Models\Post;
1515
use LaravelJsonApi\Contracts\Pagination\Paginator;
16+
use LaravelJsonApi\Core\Schema\Attributes\Model;
1617
use LaravelJsonApi\Eloquent\Fields\DateTime;
1718
use LaravelJsonApi\Eloquent\Fields\ID;
1819
use LaravelJsonApi\Eloquent\Fields\Relations\BelongsTo;
@@ -36,17 +37,11 @@
3637
use LaravelJsonApi\Eloquent\SoftDeletes;
3738
use LaravelJsonApi\Eloquent\Sorting\SortCountable;
3839

40+
#[Model(Post::class)]
3941
class PostSchema extends Schema
4042
{
4143
use SoftDeletes;
4244

43-
/**
44-
* The model the schema corresponds to.
45-
*
46-
* @var string
47-
*/
48-
public static string $model = Post::class;
49-
5045
/**
5146
* @var array|null
5247
*/

tests/app/Schemas/RoleSchema.php

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace App\Schemas;
1313

1414
use App\Models\Role;
15+
use LaravelJsonApi\Core\Schema\Attributes\Model;
1516
use LaravelJsonApi\Eloquent\Contracts\Paginator;
1617
use LaravelJsonApi\Eloquent\Fields\DateTime;
1718
use LaravelJsonApi\Eloquent\Fields\ID;
@@ -20,16 +21,9 @@
2021
use LaravelJsonApi\Eloquent\Filters\WhereIdIn;
2122
use LaravelJsonApi\Eloquent\Schema;
2223

24+
#[Model(Role::class)]
2325
class RoleSchema extends Schema
2426
{
25-
26-
/**
27-
* The model the schema corresponds to.
28-
*
29-
* @var string
30-
*/
31-
public static string $model = Role::class;
32-
3327
/**
3428
* @inheritDoc
3529
*/

0 commit comments

Comments
 (0)