"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GroupSchema = void 0;
const subschemas_1 = require("../../core/schemas/shared/subschemas");
/**
 * Defines the JSON schema for a Hub Group's editable fields
 */
exports.GroupSchema = {
    required: ["name"],
    type: "object",
    properties: {
        name: subschemas_1.ENTITY_NAME_SCHEMA,
        summary: Object.assign(Object.assign({}, subschemas_1.ENTITY_SUMMARY_SCHEMA), { 
            // group snippets (mapped to summary on the entity) have
            // a max char limit of 250
            maxLength: 250 }),
        description: { type: "string" },
        _thumbnail: subschemas_1.ENTITY_IMAGE_SCHEMA,
        access: {
            type: "string",
            enum: ["private", "org", "public"],
            default: "private",
        },
        isSharedUpdate: { type: "boolean", enum: [false, true], default: false },
        leavingDisallowed: { type: "boolean", enum: [false, true], default: false },
        isOpenData: { type: "boolean", enum: [false, true], default: false },
        membershipAccess: {
            type: "string",
            enum: ["organization", "collaborators", "anyone"],
            default: "organization",
        },
        isViewOnly: {
            type: "boolean",
            enum: [false, true],
            default: false,
        },
        _join: {
            type: "string",
            enum: ["invite", "request", "auto"],
            default: "invite",
        },
        hiddenMembers: {
            type: "boolean",
            enum: [false, true],
            default: false,
        },
        isDiscussable: subschemas_1.ENTITY_IS_DISCUSSABLE_SCHEMA,
        discussionSettings: subschemas_1.DISCUSSION_SETTINGS_SCHEMA,
        tags: subschemas_1.ENTITY_TAGS_SCHEMA,
    },
};
//# sourceMappingURL=GroupSchema.js.map