<?php namespace Darksparrow\AuxiliumSchemaBuilder\Examples\SchemaBuilder\Schemas; require_once __DIR__ . "/../../vendor/autoload.php"; use Darksparrow\AuxiliumSchemaBuilder\Attributes\SchemaDocumentChildField; use Darksparrow\AuxiliumSchemaBuilder\Enumerators\SchemaFieldExistence; use Darksparrow\AuxiliumSchemaBuilder\Attributes\SchemaDocument; use Darksparrow\AuxiliumSchemaBuilder\Attributes\SchemaDocumentField; #[SchemaDocument( Name: "message", MimeType: "message/rfc822", )] class Message { #[SchemaDocumentField( Name: "sender", Existence: SchemaFieldExistence::SHOULD, Comment: "The sender should be attached to a user object if known", ValidSchemas: [ "https://schemas.auxiliumsoftware.co.uk/v1/user.json" ], )] public string $Sender; #[SchemaDocumentField( Name: "recipients", Existence: SchemaFieldExistence::SHOULD, Comment: "All direct recipients that are known should be attached", ValidSchemas: [ "https://schemas.auxiliumsoftware.co.uk/v1/collection.json" ], MaxSize: 0, Child: new SchemaDocumentChildField( Comment: "All direct recipients should be addressed", ValidSchemas: [ "https://schemas.auxiliumsoftware.co.uk/v1/user.json" ] ), )] public string $Recipients; #[SchemaDocumentField( Name: "indirect_recipients", Existence: SchemaFieldExistence::SHOULD, Comment: "All cc'd recipients that are known should be attached", ValidSchemas: [ "https://schemas.auxiliumsoftware.co.uk/v1/collection.json" ], MaxSize: 0, Child: new SchemaDocumentChildField( Comment: "All direct recipients should be addressed", ValidSchemas: [ "https://schemas.auxiliumsoftware.co.uk/v1/user.json" ] ), )] public string $IndirectRecipients; #[SchemaDocumentField( Name: "sent_at", Existence: SchemaFieldExistence::SHOULD, Comment: "The date the message was actually sent, if supplied MUST be in ISO 8601 format", MaxSize: 64, MimeType: "text/plain", )] public string $SentAt; }