package org.datavaultplatform.common.model;

public enum Permission {

    VAULT_PERMISSION_1("VAULT_PERMISSION_1", PermissionModel.PermissionType.VAULT, "Vault Permission 1"),
    VAULT_PERMISSION_2("VAULT_PERMISSION_2", PermissionModel.PermissionType.VAULT, "Vault Permission 2"),
    VAULT_PERMISSION_3("VAULT_PERMISSION_3", PermissionModel.PermissionType.VAULT, "Vault Permission 3"),
    VAULT_PERMISSION_4("VAULT_PERMISSION_4", PermissionModel.PermissionType.VAULT, "Vault Permission 4"),
    VAULT_PERMISSION_5("VAULT_PERMISSION_5", PermissionModel.PermissionType.VAULT, "Vault Permission 5"),

    SCHOOL_PERMISSION_1("SCHOOL_PERMISSION_1", PermissionModel.PermissionType.SCHOOL, "School Permission 1"),
    SCHOOL_PERMISSION_2("SCHOOL_PERMISSION_2", PermissionModel.PermissionType.SCHOOL, "School Permission 2"),
    SCHOOL_PERMISSION_3("SCHOOL_PERMISSION_3", PermissionModel.PermissionType.SCHOOL, "School Permission 3"),
    SCHOOL_PERMISSION_4("SCHOOL_PERMISSION_4", PermissionModel.PermissionType.SCHOOL, "School Permission 4"),
    SCHOOL_PERMISSION_5("SCHOOL_PERMISSION_5", PermissionModel.PermissionType.SCHOOL, "School Permission 5"),

    ADMIN_PERMISSION_1("ADMIN_PERMISSION_1", PermissionModel.PermissionType.ADMIN, "Admin Permission 1"),
    ADMIN_PERMISSION_2("ADMIN_PERMISSION_2", PermissionModel.PermissionType.ADMIN, "Admin Permission 2"),
    ADMIN_PERMISSION_3("ADMIN_PERMISSION_3", PermissionModel.PermissionType.ADMIN, "Admin Permission 3"),
    ADMIN_PERMISSION_4("ADMIN_PERMISSION_4", PermissionModel.PermissionType.ADMIN, "Admin Permission 4"),
    ADMIN_PERMISSION_5("ADMIN_PERMISSION_5", PermissionModel.PermissionType.ADMIN, "Admin Permission 5");

    private final String id;

    private final PermissionModel.PermissionType defaultType;

    private final String defaultLabel;

    Permission(String id, PermissionModel.PermissionType defaultType, String defaultLabel) {
        this.id = id;
        this.defaultType = defaultType;
        this.defaultLabel = defaultLabel;
    }

    public String getId() {
        return id;
    }

    public PermissionModel.PermissionType getDefaultType() {
        return defaultType;
    }

    public String getDefaultLabel() {
        return defaultLabel;
    }
}

@@ -64,16 +64,41 @@
 sion %7B%0A%0A
+    // Vault permissions%0A
     VAUL
@@ -628,1021 +628,1429 @@
     
-SCHOOL_PERMISSION_1(%22SCHOOL_PERMISSION_1%22, PermissionModel.PermissionType.SCHOOL, %22School Permission 1%22),%0A    SCHOOL_PERMISSION_2(%22SCHOOL_PERMISSION_2%22, PermissionModel.PermissionType.SCHOOL, %22School Permission 2%22),%0A    SCHOOL_PERMISSION_3(%22SCHOOL_PERMISSION_3%22, PermissionModel.PermissionType.SCHOOL, %22School Permission 3%22),%0A    SCHOOL_PERMISSION_4(%22SCHOOL_PERMISSION_4%22, PermissionModel.PermissionType.SCHOOL, %22School Permission 4%22),%0A    SCHOOL_PERMISSION_5(%22SCHOOL_PERMISSION_5%22, PermissionModel.PermissionType.SCHOOL, %22School Permission 5%22),%0A%0A    ADMIN_PERMISSION_1(%22ADMIN_PERMISSION_1%22, PermissionModel.PermissionType.ADMIN, %22Admin Permission 1%22),%0A    ADMIN_PERMISSION_2(%22ADMIN_PERMISSION_2%22, PermissionModel.PermissionType.ADMIN, %22Admin Permission 2%22),%0A    ADMIN_PERMISSION_3(%22ADMIN_PERMISSION_3%22, PermissionModel.PermissionType.ADMIN, %22Admin Permission 3%22),%0A    ADMIN_PERMISSION_4(%22ADMIN_PERMISSION_4%22, PermissionModel.PermissionType.ADMIN, %22Admin Permission 4%22),%0A    ADMIN_PERMISSION_5(%22ADMIN_PERMISSION_5
+// School permissions%0A    CAN_VIEW_VAULTS_SIZE(%22CAN_VIEW_VAULTS_SIZE%22, PermissionModel.PermissionType.SCHOOL, %22View school vaults size%22),%0A    CAN_VIEW_IN_PROGRESS_DEPOSITS(%22CAN_VIEW_IN_PROGRESS_DEPOSITS%22, PermissionModel.PermissionType.SCHOOL, %22View school deposits/retrieves in progress%22),%0A    CAN_VIEW_DEPOSIT_QUEUE(%22CAN_VIEW_DEPOSIT_QUEUE%22, PermissionModel.PermissionType.SCHOOL, %22View school deposit/retrieval queues%22),%0A    CAN_MANAGE_VAULTS(%22CAN_MANAGE_VAULTS%22, PermissionModel.PermissionType.SCHOOL, %22Manage school vaults%22),%0A    CAN_MANAGE_DEPOSITS(%22CAN_MANAGE_DEPOSITS%22, PermissionModel.PermissionType.SCHOOL, %22Manage school vault deposits%22),%0A    CAN_VIEW_RETRIEVES(%22CAN_VIEW_RETRIEVES%22, PermissionModel.PermissionType.SCHOOL, %22View school retrieves%22),%0A    CAN_MANAGE_SCHOOL_USERS(%22CAN_MANAGE_SCHOOL_USERS%22, PermissionModel.PermissionType.SCHOOL, %22Manage school role assignments%22),%0A%0A    // Admin permissions%0A    CAN_MANAGE_BILLING_DETAILS(%22CAN_MANAGE_BILLING_DETAILS%22, PermissionModel.PermissionType.ADMIN, %22Manage billing details%22),%0A    CAN_MANAGE_ROLES(%22CAN_MANAGE_ROLES%22, PermissionModel.PermissionType.ADMIN, %22Manage roles%22),%0A    CAN_VIEW_EVENTS(%22CAN_VIEW_EVENTS%22, PermissionModel.PermissionType.ADMIN, %22View events%22),%0A    CAN_MANAGE_RETENTION_POLICIES(%22CAN_MANAGE_RETENTION_POLICIES%22, PermissionModel.PermissionType.ADMIN, %22Manage retention policies%22),%0A    CAN_MANAGE_ARCHIVE_STORES(%22CAN_MANAGE_ARCHIVE_STORES
 %22, P
@@ -2091,26 +2091,29 @@
 N, %22
-Admin Permission 5
+Manage archive stores
 %22);%0A

Create permissions for all admin dashboard cards