import { MetricSchema } from "../../core/schemas/internal/metrics/MetricSchema";
import { IF_SOURCE_TITLE_THEN_SOURCE_LINK, IF_STATIC_THEN_REQUIRE_VALUE, IF_STATIC_THEN_URL_FORMAT, VALUE_TYPE_MAPPING, } from "../../core/schemas/internal/metrics/definitions";
import { HubItemEntitySchema } from "../../core/schemas/shared/HubItemEntitySchema";
import { HubEntityStatus } from "../../enums/hubEntityStatus";
/**
 * Defines the JSON schema for a Hub Project's editable fields
 */
export const ProjectSchema = Object.assign(Object.assign({}, HubItemEntitySchema), { properties: Object.assign(Object.assign({}, HubItemEntitySchema.properties), { _groups: {
            type: "array",
            items: { type: "string" },
        }, status: {
            type: "string",
            default: HubEntityStatus.notStarted,
            enum: Object.keys(HubEntityStatus),
        }, _metric: {
            type: "object",
            required: ["cardTitle"],
            properties: MetricSchema.properties,
        } }), allOf: [
        IF_SOURCE_TITLE_THEN_SOURCE_LINK,
        IF_STATIC_THEN_REQUIRE_VALUE,
        IF_STATIC_THEN_URL_FORMAT,
        VALUE_TYPE_MAPPING,
    ] });
//# sourceMappingURL=ProjectSchema.js.map