{
  "version": "5",
  "dialect": "mysql",
  "id": "fd71dfe7-8f9f-4f06-a18d-27aa5afe12d3",
  "prevId": "417f2cb7-3f80-40d5-8e32-f82eeb906b27",
  "tables": {
    "admin_email_invitations": {
      "name": "admin_email_invitations",
      "columns": {
        "email": {
          "name": "email",
          "type": "varchar(254)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "is_active": {
          "name": "is_active",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": true
        },
        "invited_by": {
          "name": "invited_by",
          "type": "varchar(191)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "created_at": {
          "name": "created_at",
          "type": "datetime(3)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(CURRENT_TIMESTAMP(3))"
        },
        "accepted_at": {
          "name": "accepted_at",
          "type": "datetime(3)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "accepted_by": {
          "name": "accepted_by",
          "type": "varchar(191)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        }
      },
      "indexes": {
        "admin_email_invitations_invited_by_idx": {
          "name": "admin_email_invitations_invited_by_idx",
          "columns": [
            "invited_by"
          ],
          "isUnique": false
        },
        "admin_email_invitations_accepted_by_idx": {
          "name": "admin_email_invitations_accepted_by_idx",
          "columns": [
            "accepted_by"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "admin_email_invitations_email": {
          "name": "admin_email_invitations_email",
          "columns": [
            "email"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {
        "admin_email_invitations_email_format_check": {
          "name": "admin_email_invitations_email_format_check",
          "value": "`admin_email_invitations`.`email` regexp '^[^@[:space:]]+@xtec\\.cat$'"
        },
        "admin_email_invitations_invited_by_not_blank_check": {
          "name": "admin_email_invitations_invited_by_not_blank_check",
          "value": "trim(`admin_email_invitations`.`invited_by`) <> ''"
        },
        "admin_email_invitations_accepted_by_not_blank_check": {
          "name": "admin_email_invitations_accepted_by_not_blank_check",
          "value": "`admin_email_invitations`.`accepted_by` is null or trim(`admin_email_invitations`.`accepted_by`) <> ''"
        },
        "admin_email_invitations_acceptance_check": {
          "name": "admin_email_invitations_acceptance_check",
          "value": "(`admin_email_invitations`.`accepted_at` is null and `admin_email_invitations`.`accepted_by` is null) or (`admin_email_invitations`.`accepted_at` is not null and `admin_email_invitations`.`accepted_by` is not null)"
        }
      }
    },
    "admin_users": {
      "name": "admin_users",
      "columns": {
        "user_id": {
          "name": "user_id",
          "type": "varchar(191)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "role": {
          "name": "role",
          "type": "varchar(20)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'admin'"
        },
        "is_active": {
          "name": "is_active",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": true
        },
        "created_at": {
          "name": "created_at",
          "type": "datetime(3)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(CURRENT_TIMESTAMP(3))"
        },
        "created_by": {
          "name": "created_by",
          "type": "varchar(191)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        }
      },
      "indexes": {
        "admin_users_created_by_idx": {
          "name": "admin_users_created_by_idx",
          "columns": [
            "created_by"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "admin_users_user_id": {
          "name": "admin_users_user_id",
          "columns": [
            "user_id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {
        "admin_users_role_check": {
          "name": "admin_users_role_check",
          "value": "`admin_users`.`role` in ('admin')"
        },
        "admin_users_user_id_not_blank_check": {
          "name": "admin_users_user_id_not_blank_check",
          "value": "trim(`admin_users`.`user_id`) <> ''"
        },
        "admin_users_created_by_not_blank_check": {
          "name": "admin_users_created_by_not_blank_check",
          "value": "`admin_users`.`created_by` is null or trim(`admin_users`.`created_by`) <> ''"
        }
      }
    },
    "answers": {
      "name": "answers",
      "columns": {
        "submission_id": {
          "name": "submission_id",
          "type": "char(36)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "questionnaire_id": {
          "name": "questionnaire_id",
          "type": "char(3)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "question_id": {
          "name": "question_id",
          "type": "char(36)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "value": {
          "name": "value",
          "type": "tinyint",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        }
      },
      "indexes": {
        "answers_submission_id_idx": {
          "name": "answers_submission_id_idx",
          "columns": [
            "submission_id"
          ],
          "isUnique": false
        },
        "answers_question_id_idx": {
          "name": "answers_question_id_idx",
          "columns": [
            "question_id"
          ],
          "isUnique": false
        },
        "answers_questionnaire_id_idx": {
          "name": "answers_questionnaire_id_idx",
          "columns": [
            "questionnaire_id"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {
        "answers_submission_questionnaire_fk": {
          "name": "answers_submission_questionnaire_fk",
          "tableFrom": "answers",
          "tableTo": "submissions",
          "columnsFrom": [
            "submission_id",
            "questionnaire_id"
          ],
          "columnsTo": [
            "id",
            "questionnaire_id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "answers_question_questionnaire_fk": {
          "name": "answers_question_questionnaire_fk",
          "tableFrom": "answers",
          "tableTo": "questions",
          "columnsFrom": [
            "question_id",
            "questionnaire_id"
          ],
          "columnsTo": [
            "id",
            "questionnaire_id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {
        "answers_pkey": {
          "name": "answers_pkey",
          "columns": [
            "submission_id",
            "question_id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {
        "answers_value_check": {
          "name": "answers_value_check",
          "value": "`answers`.`value` in (0, 1, 2, 3)"
        }
      }
    },
    "app_settings": {
      "name": "app_settings",
      "columns": {
        "setting_key": {
          "name": "setting_key",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "setting_value": {
          "name": "setting_value",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "updated_at": {
          "name": "updated_at",
          "type": "datetime(3)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(CURRENT_TIMESTAMP(3))"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "app_settings_setting_key": {
          "name": "app_settings_setting_key",
          "columns": [
            "setting_key"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {
        "app_settings_setting_key_not_blank_check": {
          "name": "app_settings_setting_key_not_blank_check",
          "value": "trim(`app_settings`.`setting_key`) <> ''"
        },
        "app_settings_setting_value_not_blank_check": {
          "name": "app_settings_setting_value_not_blank_check",
          "value": "trim(`app_settings`.`setting_value`) <> ''"
        },
        "app_settings_responsible_access_mode_check": {
          "name": "app_settings_responsible_access_mode_check",
          "value": "`app_settings`.`setting_key` <> 'responsible_access_mode' or `app_settings`.`setting_value` in ('all_xtec', 'centre_xtec')"
        },
        "app_settings_admin_results_minimum_submissions_check": {
          "name": "app_settings_admin_results_minimum_submissions_check",
          "value": "`app_settings`.`setting_key` <> 'admin_results_minimum_submissions' or (`app_settings`.`setting_value` regexp '^[0-9]+$' and cast(`app_settings`.`setting_value` as unsigned) between 0 and 10)"
        }
      }
    },
    "diagnostic_spaces": {
      "name": "diagnostic_spaces",
      "columns": {
        "id": {
          "name": "id",
          "type": "char(36)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "public_code": {
          "name": "public_code",
          "type": "varchar(20)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "private_token_hmac": {
          "name": "private_token_hmac",
          "type": "varchar(128)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "owner_user_id": {
          "name": "owner_user_id",
          "type": "varchar(191)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "results_token_hash": {
          "name": "results_token_hash",
          "type": "varchar(128)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "results_token_encrypted": {
          "name": "results_token_encrypted",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "results_token_enabled": {
          "name": "results_token_enabled",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": true
        },
        "results_token_created_at": {
          "name": "results_token_created_at",
          "type": "datetime(3)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(CURRENT_TIMESTAMP(3))"
        },
        "results_token_expires_at": {
          "name": "results_token_expires_at",
          "type": "datetime(3)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "questionnaire_id": {
          "name": "questionnaire_id",
          "type": "char(3)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "is_active": {
          "name": "is_active",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": true
        },
        "created_at": {
          "name": "created_at",
          "type": "datetime(3)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(CURRENT_TIMESTAMP(3))"
        },
        "closed_at": {
          "name": "closed_at",
          "type": "datetime(3)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        }
      },
      "indexes": {
        "diagnostic_spaces_public_code_key": {
          "name": "diagnostic_spaces_public_code_key",
          "columns": [
            "public_code"
          ],
          "isUnique": true
        },
        "diagnostic_spaces_id_questionnaire_unique": {
          "name": "diagnostic_spaces_id_questionnaire_unique",
          "columns": [
            "id",
            "questionnaire_id"
          ],
          "isUnique": true
        },
        "diagnostic_spaces_owner_user_id_unique_idx": {
          "name": "diagnostic_spaces_owner_user_id_unique_idx",
          "columns": [
            "owner_user_id"
          ],
          "isUnique": true
        },
        "diagnostic_spaces_questionnaire_id_idx": {
          "name": "diagnostic_spaces_questionnaire_id_idx",
          "columns": [
            "questionnaire_id"
          ],
          "isUnique": false
        },
        "diagnostic_spaces_owner_public_code_idx": {
          "name": "diagnostic_spaces_owner_public_code_idx",
          "columns": [
            "owner_user_id",
            "public_code"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {
        "diagnostic_spaces_questionnaire_id_fkey": {
          "name": "diagnostic_spaces_questionnaire_id_fkey",
          "tableFrom": "diagnostic_spaces",
          "tableTo": "questionnaires",
          "columnsFrom": [
            "questionnaire_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {
        "diagnostic_spaces_id": {
          "name": "diagnostic_spaces_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {
        "diagnostic_spaces_public_code_format_check": {
          "name": "diagnostic_spaces_public_code_format_check",
          "value": "`diagnostic_spaces`.`public_code` regexp '^C-[ABCDEFGHJKMNPQRSTUVWXYZ23456789]{4}-[ABCDEFGHJKMNPQRSTUVWXYZ23456789]{4}$'"
        },
        "diagnostic_spaces_private_token_hmac_length_check": {
          "name": "diagnostic_spaces_private_token_hmac_length_check",
          "value": "char_length(`diagnostic_spaces`.`private_token_hmac`) >= 43"
        },
        "diagnostic_spaces_results_token_hash_length_check": {
          "name": "diagnostic_spaces_results_token_hash_length_check",
          "value": "char_length(`diagnostic_spaces`.`results_token_hash`) >= 43"
        },
        "diagnostic_spaces_results_token_encrypted_not_blank_check": {
          "name": "diagnostic_spaces_results_token_encrypted_not_blank_check",
          "value": "`diagnostic_spaces`.`results_token_encrypted` is null or trim(`diagnostic_spaces`.`results_token_encrypted`) <> ''"
        },
        "diagnostic_spaces_results_token_expires_at_check": {
          "name": "diagnostic_spaces_results_token_expires_at_check",
          "value": "`diagnostic_spaces`.`results_token_expires_at` is null or `diagnostic_spaces`.`results_token_expires_at` >= `diagnostic_spaces`.`results_token_created_at`"
        },
        "diagnostic_spaces_closed_at_check": {
          "name": "diagnostic_spaces_closed_at_check",
          "value": "`diagnostic_spaces`.`closed_at` is null or `diagnostic_spaces`.`closed_at` >= `diagnostic_spaces`.`created_at`"
        }
      }
    },
    "question_blocks": {
      "name": "question_blocks",
      "columns": {
        "id": {
          "name": "id",
          "type": "char(2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "questionnaire_id": {
          "name": "questionnaire_id",
          "type": "char(3)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "position": {
          "name": "position",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "title": {
          "name": "title",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        }
      },
      "indexes": {
        "question_blocks_questionnaire_position_key": {
          "name": "question_blocks_questionnaire_position_key",
          "columns": [
            "questionnaire_id",
            "position"
          ],
          "isUnique": true
        },
        "question_blocks_questionnaire_id_idx": {
          "name": "question_blocks_questionnaire_id_idx",
          "columns": [
            "questionnaire_id"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {
        "question_blocks_questionnaire_id_fkey": {
          "name": "question_blocks_questionnaire_id_fkey",
          "tableFrom": "question_blocks",
          "tableTo": "questionnaires",
          "columnsFrom": [
            "questionnaire_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {
        "question_blocks_pkey": {
          "name": "question_blocks_pkey",
          "columns": [
            "id",
            "questionnaire_id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {
        "question_blocks_id_format_check": {
          "name": "question_blocks_id_format_check",
          "value": "`question_blocks`.`id` regexp '^[0-9]{2}$'"
        },
        "question_blocks_position_check": {
          "name": "question_blocks_position_check",
          "value": "`question_blocks`.`position` between 1 and 10"
        },
        "question_blocks_title_not_blank_check": {
          "name": "question_blocks_title_not_blank_check",
          "value": "trim(`question_blocks`.`title`) <> ''"
        }
      }
    },
    "questionnaires": {
      "name": "questionnaires",
      "columns": {
        "id": {
          "name": "id",
          "type": "char(3)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "version": {
          "name": "version",
          "type": "varchar(20)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "title": {
          "name": "title",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "estimated_minutes": {
          "name": "estimated_minutes",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 10
        },
        "is_active": {
          "name": "is_active",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": false
        },
        "created_at": {
          "name": "created_at",
          "type": "datetime(3)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(CURRENT_TIMESTAMP(3))"
        }
      },
      "indexes": {
        "questionnaires_version_key": {
          "name": "questionnaires_version_key",
          "columns": [
            "version"
          ],
          "isUnique": true
        },
        "questionnaires_title_unique_idx": {
          "name": "questionnaires_title_unique_idx",
          "columns": [
            "(lower(trim(`title`)))"
          ],
          "isUnique": true
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "questionnaires_id": {
          "name": "questionnaires_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {
        "questionnaires_id_format_check": {
          "name": "questionnaires_id_format_check",
          "value": "`questionnaires`.`id` regexp '^[0-9]{3}$'"
        },
        "questionnaires_version_format_check": {
          "name": "questionnaires_version_format_check",
          "value": "`questionnaires`.`version` regexp '^[0-9]{4}[[:alnum:] ._-]*$'"
        },
        "questionnaires_title_not_blank_check": {
          "name": "questionnaires_title_not_blank_check",
          "value": "trim(`questionnaires`.`title`) <> ''"
        },
        "questionnaires_estimated_minutes_check": {
          "name": "questionnaires_estimated_minutes_check",
          "value": "`questionnaires`.`estimated_minutes` between 1 and 120"
        }
      }
    },
    "questions": {
      "name": "questions",
      "columns": {
        "id": {
          "name": "id",
          "type": "char(36)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "questionnaire_id": {
          "name": "questionnaire_id",
          "type": "char(3)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "block_id": {
          "name": "block_id",
          "type": "char(2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "position": {
          "name": "position",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "block_position": {
          "name": "block_position",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "text": {
          "name": "text",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "scale_min": {
          "name": "scale_min",
          "type": "tinyint",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "scale_max": {
          "name": "scale_max",
          "type": "tinyint",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 3
        }
      },
      "indexes": {
        "questions_id_questionnaire_unique": {
          "name": "questions_id_questionnaire_unique",
          "columns": [
            "id",
            "questionnaire_id"
          ],
          "isUnique": true
        },
        "questions_questionnaire_position_key": {
          "name": "questions_questionnaire_position_key",
          "columns": [
            "questionnaire_id",
            "position"
          ],
          "isUnique": true
        },
        "questions_block_position_key": {
          "name": "questions_block_position_key",
          "columns": [
            "questionnaire_id",
            "block_id",
            "block_position"
          ],
          "isUnique": true
        },
        "questions_questionnaire_id_idx": {
          "name": "questions_questionnaire_id_idx",
          "columns": [
            "questionnaire_id"
          ],
          "isUnique": false
        },
        "questions_block_id_idx": {
          "name": "questions_block_id_idx",
          "columns": [
            "block_id"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {
        "questions_questionnaire_id_fkey": {
          "name": "questions_questionnaire_id_fkey",
          "tableFrom": "questions",
          "tableTo": "questionnaires",
          "columnsFrom": [
            "questionnaire_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        },
        "questions_block_questionnaire_fk": {
          "name": "questions_block_questionnaire_fk",
          "tableFrom": "questions",
          "tableTo": "question_blocks",
          "columnsFrom": [
            "block_id",
            "questionnaire_id"
          ],
          "columnsTo": [
            "id",
            "questionnaire_id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {
        "questions_id": {
          "name": "questions_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {
        "questions_position_check": {
          "name": "questions_position_check",
          "value": "`questions`.`position` between 1 and 100"
        },
        "questions_block_position_check": {
          "name": "questions_block_position_check",
          "value": "`questions`.`block_position` between 1 and 10"
        },
        "questions_text_not_blank_check": {
          "name": "questions_text_not_blank_check",
          "value": "trim(`questions`.`text`) <> ''"
        },
        "questions_scale_min_check": {
          "name": "questions_scale_min_check",
          "value": "`questions`.`scale_min` = 0"
        },
        "questions_scale_max_check": {
          "name": "questions_scale_max_check",
          "value": "`questions`.`scale_max` = 3"
        }
      }
    },
    "submission_locks": {
      "name": "submission_locks",
      "columns": {
        "diagnostic_space_id": {
          "name": "diagnostic_space_id",
          "type": "char(36)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "public_code": {
          "name": "public_code",
          "type": "varchar(20)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "lock_hmac": {
          "name": "lock_hmac",
          "type": "varchar(128)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "created_at": {
          "name": "created_at",
          "type": "datetime(3)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(CURRENT_TIMESTAMP(3))"
        }
      },
      "indexes": {
        "submission_locks_diagnostic_space_id_idx": {
          "name": "submission_locks_diagnostic_space_id_idx",
          "columns": [
            "diagnostic_space_id"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {
        "submission_locks_diagnostic_space_id_fkey": {
          "name": "submission_locks_diagnostic_space_id_fkey",
          "tableFrom": "submission_locks",
          "tableTo": "diagnostic_spaces",
          "columnsFrom": [
            "diagnostic_space_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {
        "submission_locks_pkey": {
          "name": "submission_locks_pkey",
          "columns": [
            "diagnostic_space_id",
            "lock_hmac"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {
        "submission_locks_public_code_format_check": {
          "name": "submission_locks_public_code_format_check",
          "value": "`submission_locks`.`public_code` regexp '^C-[ABCDEFGHJKMNPQRSTUVWXYZ23456789]{4}-[ABCDEFGHJKMNPQRSTUVWXYZ23456789]{4}$'"
        },
        "submission_locks_lock_hmac_length_check": {
          "name": "submission_locks_lock_hmac_length_check",
          "value": "char_length(`submission_locks`.`lock_hmac`) >= 43"
        }
      }
    },
    "submissions": {
      "name": "submissions",
      "columns": {
        "id": {
          "name": "id",
          "type": "char(36)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "diagnostic_space_id": {
          "name": "diagnostic_space_id",
          "type": "char(36)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "questionnaire_id": {
          "name": "questionnaire_id",
          "type": "char(3)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "created_at": {
          "name": "created_at",
          "type": "datetime(3)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(CURRENT_TIMESTAMP(3))"
        }
      },
      "indexes": {
        "submissions_id_questionnaire_unique": {
          "name": "submissions_id_questionnaire_unique",
          "columns": [
            "id",
            "questionnaire_id"
          ],
          "isUnique": true
        },
        "submissions_diagnostic_space_id_idx": {
          "name": "submissions_diagnostic_space_id_idx",
          "columns": [
            "diagnostic_space_id"
          ],
          "isUnique": false
        },
        "submissions_questionnaire_id_idx": {
          "name": "submissions_questionnaire_id_idx",
          "columns": [
            "questionnaire_id"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {
        "submissions_space_questionnaire_fk": {
          "name": "submissions_space_questionnaire_fk",
          "tableFrom": "submissions",
          "tableTo": "diagnostic_spaces",
          "columnsFrom": [
            "diagnostic_space_id",
            "questionnaire_id"
          ],
          "columnsTo": [
            "id",
            "questionnaire_id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {
        "submissions_id": {
          "name": "submissions_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    }
  },
  "views": {},
  "_meta": {
    "schemas": {},
    "tables": {},
    "columns": {}
  },
  "internal": {
    "tables": {},
    "indexes": {
      "questionnaires_title_unique_idx": {
        "columns": {
          "(lower(trim(`title`)))": {
            "isExpression": true
          }
        }
      }
    }
  }
}