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