7
7
use InvalidArgumentException ;
8
8
use WordPress \AiClient \Common \AbstractDataTransferObject ;
9
9
use WordPress \AiClient \Files \Enums \FileTypeEnum ;
10
+ use WordPress \AiClient \Files \Enums \MediaOrientationEnum ;
10
11
use WordPress \AiClient \Messages \Enums \ModalityEnum ;
11
12
use WordPress \AiClient \Tools \DTO \Tool ;
12
13
38
39
* outputFileType?: string,
39
40
* outputMimeType?: string,
40
41
* outputSchema?: array<string, mixed>,
42
+ * outputMediaOrientation?: string,
41
43
* customOptions?: array<string, mixed>
42
44
* }
43
45
*
@@ -61,6 +63,7 @@ class ModelConfig extends AbstractDataTransferObject
61
63
public const KEY_OUTPUT_FILE_TYPE = 'outputFileType ' ;
62
64
public const KEY_OUTPUT_MIME_TYPE = 'outputMimeType ' ;
63
65
public const KEY_OUTPUT_SCHEMA = 'outputSchema ' ;
66
+ public const KEY_OUTPUT_MEDIA_ORIENTATION = 'outputMediaOrientation ' ;
64
67
public const KEY_CUSTOM_OPTIONS = 'customOptions ' ;
65
68
66
69
/**
@@ -143,6 +146,11 @@ class ModelConfig extends AbstractDataTransferObject
143
146
*/
144
147
protected ?array $ outputSchema = null ;
145
148
149
+ /**
150
+ * @var MediaOrientationEnum|null Output media orientation.
151
+ */
152
+ protected ?MediaOrientationEnum $ outputMediaOrientation = null ;
153
+
146
154
/**
147
155
* @var array<string, mixed> Custom provider-specific options.
148
156
*/
@@ -558,6 +566,30 @@ public function getOutputSchema(): ?array
558
566
return $ this ->outputSchema ;
559
567
}
560
568
569
+ /**
570
+ * Sets the output media orientation.
571
+ *
572
+ * @since n.e.x.t
573
+ *
574
+ * @param MediaOrientationEnum $outputMediaOrientation The output media orientation.
575
+ */
576
+ public function setOutputMediaOrientation (MediaOrientationEnum $ outputMediaOrientation ): void
577
+ {
578
+ $ this ->outputMediaOrientation = $ outputMediaOrientation ;
579
+ }
580
+
581
+ /**
582
+ * Gets the output media orientation.
583
+ *
584
+ * @since n.e.x.t
585
+ *
586
+ * @return MediaOrientationEnum|null The output media orientation.
587
+ */
588
+ public function getOutputMediaOrientation (): ?MediaOrientationEnum
589
+ {
590
+ return $ this ->outputMediaOrientation ;
591
+ }
592
+
561
593
/**
562
594
* Sets a single custom option.
563
595
*
@@ -687,6 +719,11 @@ public static function getJsonSchema(): array
687
719
'additionalProperties ' => true ,
688
720
'description ' => 'Output schema (JSON schema). ' ,
689
721
],
722
+ self ::KEY_OUTPUT_MEDIA_ORIENTATION => [
723
+ 'type ' => 'string ' ,
724
+ 'enum ' => MediaOrientationEnum::getValues (),
725
+ 'description ' => 'Output media orientation. ' ,
726
+ ],
690
727
self ::KEY_CUSTOM_OPTIONS => [
691
728
'type ' => 'object ' ,
692
729
'additionalProperties ' => true ,
@@ -779,6 +816,10 @@ static function (ModalityEnum $modality): string {
779
816
$ data [self ::KEY_OUTPUT_SCHEMA ] = $ this ->outputSchema ;
780
817
}
781
818
819
+ if ($ this ->outputMediaOrientation !== null ) {
820
+ $ data [self ::KEY_OUTPUT_MEDIA_ORIENTATION ] = $ this ->outputMediaOrientation ->value ;
821
+ }
822
+
782
823
$ data [self ::KEY_CUSTOM_OPTIONS ] = $ this ->customOptions ;
783
824
784
825
return $ data ;
@@ -862,6 +903,10 @@ public static function fromArray(array $array): self
862
903
$ config ->setOutputSchema ($ array [self ::KEY_OUTPUT_SCHEMA ]);
863
904
}
864
905
906
+ if (isset ($ array [self ::KEY_OUTPUT_MEDIA_ORIENTATION ])) {
907
+ $ config ->setOutputMediaOrientation (MediaOrientationEnum::from ($ array [self ::KEY_OUTPUT_MEDIA_ORIENTATION ]));
908
+ }
909
+
865
910
if (isset ($ array [self ::KEY_CUSTOM_OPTIONS ])) {
866
911
$ config ->setCustomOptions ($ array [self ::KEY_CUSTOM_OPTIONS ]);
867
912
}
0 commit comments