Skip to content

Commit e1c9e5d

Browse files
committed
refactor: adds constants for scheam keys
1 parent 0cf2617 commit e1c9e5d

14 files changed

+386
-347
lines changed

src/Providers/DTO/ProviderMetadata.php

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@
2525
*/
2626
final class ProviderMetadata extends AbstractDataValueObject
2727
{
28+
public const KEY_ID = 'id';
29+
public const KEY_NAME = 'name';
30+
public const KEY_TYPE = 'type';
31+
2832
/**
2933
* @var string The provider's unique identifier.
3034
*/
@@ -102,21 +106,21 @@ public static function getJsonSchema(): array
102106
return [
103107
'type' => 'object',
104108
'properties' => [
105-
'id' => [
109+
self::KEY_ID => [
106110
'type' => 'string',
107111
'description' => 'The provider\'s unique identifier.',
108112
],
109-
'name' => [
113+
self::KEY_NAME => [
110114
'type' => 'string',
111115
'description' => 'The provider\'s display name.',
112116
],
113-
'type' => [
117+
self::KEY_TYPE => [
114118
'type' => 'string',
115119
'enum' => ProviderTypeEnum::getValues(),
116120
'description' => 'The provider type (cloud, server, or client).',
117121
],
118122
],
119-
'required' => ['id', 'name', 'type'],
123+
'required' => [self::KEY_ID, self::KEY_NAME, self::KEY_TYPE],
120124
];
121125
}
122126

@@ -130,9 +134,9 @@ public static function getJsonSchema(): array
130134
public function toArray(): array
131135
{
132136
return [
133-
'id' => $this->id,
134-
'name' => $this->name,
135-
'type' => $this->type->value,
137+
self::KEY_ID => $this->id,
138+
self::KEY_NAME => $this->name,
139+
self::KEY_TYPE => $this->type->value,
136140
];
137141
}
138142

@@ -143,12 +147,12 @@ public function toArray(): array
143147
*/
144148
public static function fromArray(array $array): self
145149
{
146-
static::validateFromArrayData($array, ['id', 'name', 'type']);
150+
static::validateFromArrayData($array, [self::KEY_ID, self::KEY_NAME, self::KEY_TYPE]);
147151

148152
return new self(
149-
$array['id'],
150-
$array['name'],
151-
ProviderTypeEnum::from($array['type'])
153+
$array[self::KEY_ID],
154+
$array[self::KEY_NAME],
155+
ProviderTypeEnum::from($array[self::KEY_TYPE])
152156
);
153157
}
154158
}

src/Providers/DTO/ProviderModelsMetadata.php

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@
2727
*/
2828
final class ProviderModelsMetadata extends AbstractDataValueObject
2929
{
30+
public const KEY_PROVIDER = 'provider';
31+
public const KEY_MODELS = 'models';
32+
3033
/**
3134
* @var ProviderMetadata The provider metadata.
3235
*/
@@ -85,14 +88,14 @@ public static function getJsonSchema(): array
8588
return [
8689
'type' => 'object',
8790
'properties' => [
88-
'provider' => ProviderMetadata::getJsonSchema(),
89-
'models' => [
91+
self::KEY_PROVIDER => ProviderMetadata::getJsonSchema(),
92+
self::KEY_MODELS => [
9093
'type' => 'array',
9194
'items' => ModelMetadata::getJsonSchema(),
9295
'description' => 'The available models for this provider.',
9396
],
9497
],
95-
'required' => ['provider', 'models'],
98+
'required' => [self::KEY_PROVIDER, self::KEY_MODELS],
9699
];
97100
}
98101

@@ -106,8 +109,8 @@ public static function getJsonSchema(): array
106109
public function toArray(): array
107110
{
108111
return [
109-
'provider' => $this->provider->toArray(),
110-
'models' => array_values(
112+
self::KEY_PROVIDER => $this->provider->toArray(),
113+
self::KEY_MODELS => array_values(
111114
array_map(static fn(ModelMetadata $model): array => $model->toArray(), $this->models)
112115
),
113116
];
@@ -121,10 +124,10 @@ public function toArray(): array
121124
public static function fromArray(array $array): self
122125
{
123126
return new self(
124-
ProviderMetadata::fromArray($array['provider']),
127+
ProviderMetadata::fromArray($array[self::KEY_PROVIDER]),
125128
array_map(
126129
static fn(array $modelData): ModelMetadata => ModelMetadata::fromArray($modelData),
127-
$array['models']
130+
$array[self::KEY_MODELS]
128131
)
129132
);
130133
}

0 commit comments

Comments
 (0)