Skip to content

Commit

Permalink
add premium type enum
Browse files Browse the repository at this point in the history
  • Loading branch information
Gummibeer committed Nov 17, 2023
1 parent adc84fd commit a6c52ba
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
use Spatie\LaravelData\Support\DataProperty;
use Stringable;

class StringableCast implements Cast
class ValueObjectCast implements Cast
{
public function cast(DataProperty $property, mixed $value, array $context): Stringable|Uncastable
{
Expand Down
14 changes: 14 additions & 0 deletions src/Enums/PremiumType.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?php

namespace Astrotomic\DiscordSdk\Enums;

/**
* @link https://discord.com/developers/docs/resources/user#user-object-premium-types
*/
enum PremiumType: int
{
case NONE = 0;
case NITRO_CLASSIC = 1;
case NITRO = 2;
case NITRO_BASIC = 3;
}
4 changes: 2 additions & 2 deletions src/Objects/Embed.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
namespace Astrotomic\DiscordSdk\Objects;

use Astrotomic\DiscordSdk\Casts\CarbonInterfaceCast;
use Astrotomic\DiscordSdk\Casts\StringableCast;
use Astrotomic\DiscordSdk\Casts\ValueObjectCast;
use Astrotomic\DiscordSdk\Enums\EmbedType;
use Astrotomic\DiscordSdk\Structures\EmbedField;
use Astrotomic\DiscordSdk\Structures\EmbedImage;
Expand All @@ -26,7 +26,7 @@ public function __construct(
public readonly ?string $url,
#[WithCast(CarbonInterfaceCast::class)]
public readonly ?CarbonImmutable $timestamp,
#[WithCast(StringableCast::class)]
#[WithCast(ValueObjectCast::class)]
public readonly ?Color $color,
public readonly ?array $footer, // ToDo
public readonly ?EmbedImage $image,
Expand Down
10 changes: 5 additions & 5 deletions src/Objects/Message.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
namespace Astrotomic\DiscordSdk\Objects;

use Astrotomic\DiscordSdk\Casts\CarbonInterfaceCast;
use Astrotomic\DiscordSdk\Casts\StringableCast;
use Astrotomic\DiscordSdk\Casts\ValueObjectCast;
use Astrotomic\DiscordSdk\Values\Snowflake;
use Carbon\CarbonImmutable;
use Spatie\LaravelData\Attributes\DataCollectionOf;
Expand All @@ -17,9 +17,9 @@
class Message extends Data
{
public function __construct(
#[WithCast(StringableCast::class)]
#[WithCast(ValueObjectCast::class)]
public readonly Snowflake $id,
#[WithCast(StringableCast::class)]
#[WithCast(ValueObjectCast::class)]
public readonly Snowflake $channel_id,
public readonly User $author,
public readonly ?string $content,
Expand All @@ -38,12 +38,12 @@ public function __construct(
public readonly ?array $reactions, // ToDo
public readonly null|int|string $nonce,
public readonly bool $pinned,
#[WithCast(StringableCast::class)]
#[WithCast(ValueObjectCast::class)]
public readonly ?Snowflake $webhook_id,
public readonly int $type, // ToDo
public readonly ?array $activity, // ToDo
public readonly ?array $application, // ToDo
#[WithCast(StringableCast::class)]
#[WithCast(ValueObjectCast::class)]
public readonly ?Snowflake $application_id, // ToDo
public readonly ?array $message_reference, // ToDo
public readonly int $flags, // ToDo
Expand Down
6 changes: 3 additions & 3 deletions src/Objects/Role.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Astrotomic\DiscordSdk\Objects;

use Astrotomic\DiscordSdk\Casts\StringableCast;
use Astrotomic\DiscordSdk\Casts\ValueObjectCast;
use Astrotomic\DiscordSdk\Values\Color;
use Astrotomic\DiscordSdk\Values\Snowflake;
use Spatie\LaravelData\Attributes\WithCast;
Expand All @@ -14,10 +14,10 @@
class Role extends Data
{
public function __construct(
#[WithCast(StringableCast::class)]
#[WithCast(ValueObjectCast::class)]
public readonly Snowflake $id,
public readonly string $name,
#[WithCast(StringableCast::class)]
#[WithCast(ValueObjectCast::class)]
public readonly Color $color,
public readonly bool $hoist,
public readonly ?string $icon,
Expand Down
9 changes: 5 additions & 4 deletions src/Objects/User.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

namespace Astrotomic\DiscordSdk\Objects;

use Astrotomic\DiscordSdk\Casts\StringableCast;
use Astrotomic\DiscordSdk\Casts\ValueObjectCast;
use Astrotomic\DiscordSdk\Enums\PremiumType;
use Astrotomic\DiscordSdk\Values\Color;
use Astrotomic\DiscordSdk\Values\Snowflake;
use Spatie\LaravelData\Attributes\WithCast;
Expand All @@ -14,7 +15,7 @@
class User extends Data
{
public function __construct(
#[WithCast(StringableCast::class)]
#[WithCast(ValueObjectCast::class)]
public readonly Snowflake $id,
public readonly string $username,
public readonly string $discriminator,
Expand All @@ -24,13 +25,13 @@ public function __construct(
public readonly ?bool $system,
public readonly ?bool $mfa_enabled,
public readonly ?string $banner,
#[WithCast(StringableCast::class)]
#[WithCast(ValueObjectCast::class)]
public readonly ?Color $accent_color,
public readonly ?string $locale,
public readonly ?bool $verified,
public readonly ?string $email,
public readonly ?int $flags,
public readonly ?int $premium_type,
public readonly ?PremiumType $premium_type,
public readonly ?int $public_flags,
public readonly ?string $avatar_decoration,
) {
Expand Down

0 comments on commit a6c52ba

Please sign in to comment.