AutoBE
    Preparing search index...

    Object type info.

    interface IObject {
        additionalProperties?: false | AutoBeOpenApi.IJsonSchema;
        description: string;
        properties: Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>;
        required: string[];
        type: "object";
    }

    Hierarchy (View Summary)

    Index

    Properties

    additionalProperties?: false | AutoBeOpenApi.IJsonSchema

    Additional properties' info.

    The additionalProperties means the type schema info of the additional properties that are not listed in the properties.

    If the value is false, it means that the additional properties are not specified. Otherwise, if the value is IJsonSchema type, it means that the additional properties must follow the type schema info.

    • false: No additional properties
    • IJsonSchema: Record<string, T>
    description: string

    Description about the type.

    CRITICAL: This description MUST be extensively detailed and MUST reference and align with the description comments from the corresponding Prisma DB schema tables and columns.

    The description MUST be organized into MULTIPLE PARAGRAPHS (separated by line breaks) based on different aspects of the type:

    • The purpose and business meaning of the type
    • Relationships to other entities in the system
    • Validation rules, constraints, and edge cases
    • Usage context and examples when helpful

    This structured approach improves readability and helps readers better understand the type's various characteristics and use cases. The description should be so comprehensive that anyone reading it can fully understand the type without needing to reference other documentation.

    MUST be written in English. Never use other languages.

    properties: Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>

    Properties of the object.

    The properties means a list of key-value pairs of the object's regular properties. The key is the name of the regular property, and the value is the type schema info.

    IMPORTANT: Each property in this object MUST have a detailed description that references and aligns with the description comments from the corresponding Prisma DB schema column.

    If you need additional properties that is represented by dynamic key, you can use the additionalProperties instead.

    required: string[]

    List of key values of the required properties.

    The required means a list of the key values of the required properties. If some property key is not listed in the required list, it means that property is optional. Otherwise some property key exists in the required list, it means that the property must be filled.

    Below is an example of the properties and required.

    interface SomeObject {
    id: string;
    email: string;
    name?: string;
    }

    As you can see, id and email properties are required, so that they are listed in the required list.

    {
    "type": "object",
    "properties": {
    "id": { "type": "string" },
    "email": { "type": "string" },
    "name": { "type": "string" }
    },
    "required": ["id", "email"]
    }
    type: "object"

    Discriminator value of the type.

    CRITICAL: This MUST be a SINGLE string value, NOT an array. The type field identifies the JSON Schema type and must be exactly one of: "boolean", "integer", "number", "string", "array", "object", or "null".

    ❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT: type: "string" // For nullable string, use oneOf instead

    If you need to express a nullable type (e.g., string | null), you MUST use the IOneOf structure:

    {
    "oneOf": [{ "type": "string" }, { "type": "null" }]
    }

    NEVER use array notation in the type field. The type field is a discriminator that accepts only a single string value.