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.
97 lines
2.6 KiB
97 lines
2.6 KiB
<?php
|
|
|
|
namespace Auxilium\Schemas;
|
|
|
|
use Darksparrow\AuxiliumSchemaBuilder\Attributes\SchemaDocument;
|
|
use Darksparrow\AuxiliumSchemaBuilder\Attributes\SchemaDocumentField;
|
|
use Darksparrow\AuxiliumSchemaBuilder\Enumerators\SchemaFieldExistence;
|
|
|
|
#[SchemaDocument(
|
|
Name: "case",
|
|
Comment: "The case object itself SHOULD not have a value"
|
|
)]
|
|
class CaseSchema
|
|
{
|
|
#[SchemaDocumentField(
|
|
Name: "title",
|
|
Existence: SchemaFieldExistence::SHOULD,
|
|
Comment: "This SHOULD be a short description of what the case is about",
|
|
MaxSize: 2048,
|
|
MimeType: "text/plain",
|
|
)]
|
|
public string $Title;
|
|
|
|
#[SchemaDocumentField(
|
|
Name: "clients",
|
|
Existence: SchemaFieldExistence::SHOULD,
|
|
Comment: "This SHOULD be an 'array node' of all the clients involved in the case",
|
|
ValidSchemas: [
|
|
CollectionSchema::class,
|
|
],
|
|
MaxSize: 0,
|
|
Child: new SchemaDocumentField(
|
|
Name: "clients",
|
|
Comment: "",
|
|
ValidSchemas: [
|
|
UserSchema::class,
|
|
]
|
|
),
|
|
)]
|
|
public array $Clients;
|
|
|
|
#[SchemaDocumentField(
|
|
Name: "workers",
|
|
Existence: SchemaFieldExistence::SHOULD,
|
|
Comment: "This SHOULD be an 'array node' of all staff working on the case",
|
|
ValidSchemas: [
|
|
CollectionSchema::class,
|
|
],
|
|
MaxSize: 0,
|
|
Child: new SchemaDocumentField(
|
|
Name: "workers",
|
|
Comment: "",
|
|
ValidSchemas: [
|
|
UserSchema::class,
|
|
OrganisationSchema::class,
|
|
]
|
|
),
|
|
)]
|
|
public array $Workers;
|
|
|
|
#[SchemaDocumentField(
|
|
Name: "documents",
|
|
Existence: SchemaFieldExistence::SHOULD,
|
|
Comment: "This SHOULD be an 'array node' of all the case documents",
|
|
ValidSchemas: [
|
|
CollectionSchema::class,
|
|
],
|
|
MaxSize: 0,
|
|
Child: new SchemaDocumentField(
|
|
Name: "documents",
|
|
Comment: "",
|
|
ValidSchemas: [
|
|
DocumentSchema::class,
|
|
]
|
|
),
|
|
)]
|
|
public array $Documents;
|
|
|
|
#[SchemaDocumentField(
|
|
Name: "messages",
|
|
Existence: SchemaFieldExistence::SHOULD,
|
|
Comment: "This SHOULD be an 'array node' of all messages that relate to this case",
|
|
ValidSchemas: [
|
|
CollectionSchema::class,
|
|
],
|
|
MaxSize: 0,
|
|
Child: new SchemaDocumentField(
|
|
Name: "messages",
|
|
Comment: "",
|
|
ValidSchemas: [
|
|
CollectionSchema::class,
|
|
]
|
|
),
|
|
)]
|
|
public array $Messages;
|
|
}
|
|
|
|
|