Compare commits
2 Commits
0c4e12132a
...
fd8c0f1085
Author | SHA1 | Date |
---|---|---|
|
fd8c0f1085 | |
|
286148de2e |
|
@ -2,27 +2,29 @@
|
|||
|
||||
namespace App\Lib\Data;
|
||||
|
||||
use Spatie\LaravelData\Normalizers\Normalizer;
|
||||
use App\Lib\Normalizers\DateNormalizer;
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Attributes\MapInputName;
|
||||
use Spatie\LaravelData\Attributes\MapOutputName;
|
||||
use Spatie\LaravelData\Attributes\WithTransformer;
|
||||
use Spatie\LaravelData\Mappers\SnakeCaseMapper;
|
||||
use Spatie\TypeScriptTransformer\Attributes\Typescript;
|
||||
use App\Lib\Transformers\DateTransformer;
|
||||
use Carbon\Carbon;
|
||||
|
||||
#[MapInputName(SnakeCaseMapper::class)]
|
||||
#[MapOutputName(SnakeCaseMapper::class)]
|
||||
#[TypeScript]
|
||||
class DateData extends Data
|
||||
{
|
||||
|
||||
public function __construct(
|
||||
#[WithTransformer(DateTransformer::class)]
|
||||
public string $raw,
|
||||
public Carbon $raw,
|
||||
public string $human,
|
||||
) {}
|
||||
|
||||
/**
|
||||
* @return array<int, class-string<Normalizer>>
|
||||
*/
|
||||
public static function normalizers(): array
|
||||
{
|
||||
return [
|
||||
|
|
|
@ -7,6 +7,9 @@ use Carbon\Carbon;
|
|||
|
||||
class DateNormalizer implements Normalizer
|
||||
{
|
||||
/**
|
||||
* @return array<string, mixed>
|
||||
*/
|
||||
public function normalize(mixed $value): ?array
|
||||
{
|
||||
if (!$value instanceof Carbon) {
|
||||
|
|
|
@ -6,11 +6,9 @@ use Spatie\LaravelData\Data;
|
|||
use Spatie\LaravelData\Attributes\MapInputName;
|
||||
use Spatie\LaravelData\Attributes\MapOutputName;
|
||||
use Spatie\LaravelData\Mappers\SnakeCaseMapper;
|
||||
use Spatie\TypeScriptTransformer\Attributes\Typescript;
|
||||
|
||||
#[MapInputName(SnakeCaseMapper::class)]
|
||||
#[MapOutputName(SnakeCaseMapper::class)]
|
||||
#[TypeScript]
|
||||
class ActivityData extends Data {
|
||||
|
||||
public function __construct(
|
||||
|
|
|
@ -6,11 +6,9 @@ use Spatie\LaravelData\Data;
|
|||
use Spatie\LaravelData\Attributes\MapInputName;
|
||||
use Spatie\LaravelData\Attributes\MapOutputName;
|
||||
use Spatie\LaravelData\Mappers\SnakeCaseMapper;
|
||||
use Spatie\TypeScriptTransformer\Attributes\Typescript;
|
||||
|
||||
#[MapInputName(SnakeCaseMapper::class)]
|
||||
#[MapOutputName(SnakeCaseMapper::class)]
|
||||
#[TypeScript]
|
||||
class GroupData extends Data {
|
||||
|
||||
public function __construct(
|
||||
|
|
|
@ -10,11 +10,9 @@ use App\Member\Membership;
|
|||
use App\Member\Member;
|
||||
use App\Activity;
|
||||
use App\Lib\Data\DateData;
|
||||
use Spatie\TypeScriptTransformer\Attributes\Typescript;
|
||||
|
||||
#[MapInputName(SnakeCaseMapper::class)]
|
||||
#[MapOutputName(SnakeCaseMapper::class)]
|
||||
#[TypeScript]
|
||||
class MembershipData extends Data
|
||||
{
|
||||
|
||||
|
@ -28,7 +26,7 @@ class MembershipData extends Data
|
|||
public bool $isActive,
|
||||
) {}
|
||||
|
||||
public static function fromModel(Membership $membership)
|
||||
public static function fromModel(Membership $membership): static
|
||||
{
|
||||
return static::factory()->withoutMagicalCreation()->from([
|
||||
'id' => $membership->id,
|
||||
|
|
|
@ -6,11 +6,9 @@ use Spatie\LaravelData\Data;
|
|||
use Spatie\LaravelData\Attributes\MapInputName;
|
||||
use Spatie\LaravelData\Attributes\MapOutputName;
|
||||
use Spatie\LaravelData\Mappers\SnakeCaseMapper;
|
||||
use Spatie\TypeScriptTransformer\Attributes\Typescript;
|
||||
|
||||
#[MapInputName(SnakeCaseMapper::class)]
|
||||
#[MapOutputName(SnakeCaseMapper::class)]
|
||||
#[TypeScript]
|
||||
class SubactivityData extends Data {
|
||||
|
||||
public function __construct(
|
||||
|
|
Loading…
Reference in New Issue