"use strict";
var __assign = (this && this.__assign) || function () {
    __assign = Object.assign || function(t) {
        for (var s, i = 1, n = arguments.length; i < n; i++) {
            s = arguments[i];
            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
                t[p] = s[p];
        }
        return t;
    };
    return __assign.apply(this, arguments);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.PRESETS = void 0;
var jsx_runtime_1 = require("react/jsx-runtime");
var antd_1 = require("antd");
var A_1 = __importDefault(require("components/misc/A"));
var Text = antd_1.Typography.Text;
// some constants to keep text and preset in sync
var STANDARD_CPU = 1;
var STANDARD_RAM = 2;
var STANDARD_DISK = 3;
var WARN_SELECT_NUMBER_PROJECTS = ((0, jsx_runtime_1.jsx)(Text, __assign({ italic: true }, { children: "Each student will work in their own project. Therefore, make sure to select the number of projects (the \"Run Limit\", above) to match your expected number of students!" })));
var APPLY_LICENSE_COURSE_CONFIG = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["To apply this license to all student projects, add it in the", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://doc.cocalc.com/teaching-upgrade-course.html#install-course-license" }, { children: "course configuration" })), "."] }));
exports.PRESETS = {
    standard: {
        icon: "line-chart",
        name: "Standard",
        descr: "is a good choice for most users to get started",
        details: ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["You can run two or three Jupyter Notebooks in the same project at the same time, given they do not require a large amount of memory. This quota is fine for editing LaTeX documents, working with Sage Worksheets, and all other document types as well. ", STANDARD_DISK, "G of disk space are also sufficient to store many files and a few small datasets."] })),
        cpu: STANDARD_CPU,
        ram: STANDARD_RAM,
        disk: STANDARD_DISK,
    },
    student: {
        icon: "meh",
        name: "Student",
        descr: "covers student projects in a course",
        details: ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["If you're teaching a course, this upgrade is suitable for", " ", (0, jsx_runtime_1.jsx)(Text, __assign({ italic: true }, { children: "student projects" })), ". The upgrade schema is the same as for \"Standard\" projects, which should be a good choice for doing their assignments. ", WARN_SELECT_NUMBER_PROJECTS, " Each student project will get the configured upgrades, internet access, and improved hosting quality.", " ", APPLY_LICENSE_COURSE_CONFIG] })),
        cpu: STANDARD_CPU,
        ram: STANDARD_RAM,
        disk: STANDARD_DISK,
    },
    "student+": {
        icon: "smile",
        name: "Student+",
        descr: "covers student projects with extra resources",
        details: ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["This quota preset is very similar as the \"Student\" quota, although students will get a bit more ram and disk space.", " ", WARN_SELECT_NUMBER_PROJECTS, " The increased idle-timeout will keep their notebooks and worksheets a bit longer running, while not in active use. Choose this schema, if you plan to let them run data and memory intensive calculations, e.g. data-science, machine-learning, etc.", " ", APPLY_LICENSE_COURSE_CONFIG] })),
        cpu: 1,
        ram: 2 * STANDARD_RAM,
        disk: 2 * STANDARD_DISK,
        uptime: "medium",
    },
    instructor: {
        icon: "highlighter",
        name: "Instructor",
        descr: "is a good choice for the instructor's project when teaching a course",
        details: ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["The upgrade schema is suitable for grading the work of students: by increasing the memory quota you can run many Jupyter Notebooks at the same time \u2013 still, make sure to use the", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://doc.cocalc.com/jupyter.html?highlight=halt%20button#use-the-halt-button-to-conserve-memory" }, { children: "Halt button" })), " ", "to avoid exceeding the quota. Regarding disk space, distributing and collecting files from many students adds up \u2013 hence the disk quota is increased significantly! Finally, a longer idle-timeout will allow you to make longer breaks without your project being shut down. You only need a license with a \"Run Limit\" of one for your instructor project. Apply that license via the", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://doc.cocalc.com/project-settings.html#licenses" }, { children: "project settings" })), ", not the course configuration!"] })),
        cpu: 1,
        ram: 6,
        disk: 15,
        uptime: "medium",
    },
    research: {
        icon: "rocket",
        name: "Research",
        descr: "is a good choice for a research group",
        details: ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["This configuration allows the project to run many Jupyter Notebooks and Worksheets at once or run computations that require plenty of memory. An idle-timeout of one day is sufficient to not interrupt your work and you can also run calculations, which take a while to complete. Increasing the disk space quota allows you to store larger datasets as well. If you need vastly more disk space, you can also get a", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "/store/dedicated?type=disk" }, { children: "dedicated disk" })), "."] })),
        cpu: 1,
        ram: 6,
        disk: 10,
        uptime: "day",
    },
    development: {
        icon: "settings",
        name: "Development",
        descr: "is suitable for software development",
        details: ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: "This configuration helps with parallelizing build tasks across more than one CPU, increases the amount of memory and also disk space." })),
        cpu: 2,
        ram: 8,
        disk: 10,
        uptime: "medium",
    },
    budget: {
        icon: "wallet",
        name: "Budget",
        descr: "is the cheapest option",
        details: ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Choose this option if you want to spend as little money as possible, while still getting access to the internet from within a project (to download packages, datasets, or interact with GitHub/GitLab). It also removes the", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://doc.cocalc.com/trial.html" }, { children: "trial project" })), " banner."] })),
        cpu: 1,
        ram: 1,
        disk: 3,
        member: false,
    },
};
//# sourceMappingURL=quota-config-presets.js.map