You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
2.2 KiB

<?php
1 month ago
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;
}