// Code generated by swaggo/swag. DO NOT EDIT.

package docs

import "github.com/swaggo/swag"

const docTemplate = `{
    "schemes": {{ marshal .Schemes }},
    "swagger": "2.0",
    "info": {
        "description": "{{escape .Description}}",
        "title": "{{.Title}}",
        "contact": {
            "name": "Charlie",
            "email": "charlie_j107+aat-backend-swagger@outlook.com"
        },
        "license": {
            "name": "MPL-2.0",
            "url": "https://www.mozilla.org/en-US/MPL/2.0/"
        },
        "version": "{{.Version}}"
    },
    "host": "{{.Host}}",
    "basePath": "{{.BasePath}}",
    "paths": {
        "/formative-assessments": {
            "get": {
                "description": "Get all formative assessments",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "FormativeAssessments"
                ],
                "summary": "Get all formative assessments",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tags to filter assessments",
                        "name": "tags",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/models.FormativeAssessmentResponseDTO"
                            }
                        }
                    }
                }
            },
            "post": {
                "description": "Create a formative assessment",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "FormativeAssessments"
                ],
                "summary": "Create a formative assessment",
                "parameters": [
                    {
                        "description": "Formative assessment",
                        "name": "formativeAssessment",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.FormativeAssessmentResponseDTO"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/models.FormativeAssessmentResponseDTO"
                        }
                    }
                }
            }
        },
        "/formative-assessments/{id}": {
            "get": {
                "description": "Get a formative assessment",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "FormativeAssessments"
                ],
                "summary": "Get a formative assessment",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Formative assessment ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.FormativeAssessmentResponseDTO"
                        }
                    }
                }
            },
            "put": {
                "description": "Update a formative assessment",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "FormativeAssessments"
                ],
                "summary": "Update a formative assessment",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Formative assessment ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Formative assessment",
                        "name": "formativeAssessment",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.FormativeAssessmentResponseDTO"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.FormativeAssessmentResponseDTO"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete formative assessment",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "FormativeAssessment"
                ],
                "summary": "Delete formative assessment",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Formative assessment id",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.FormativeAssessmentResponseDTO"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/multi-choice": {
            "get": {
                "description": "Get all multi choice questions",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "MultiChoiceQuestions"
                ],
                "summary": "Get all multi choice questions",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tags to filter questions",
                        "name": "tags",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/models.MultiChoiceQuestionDTO"
                            }
                        }
                    }
                }
            },
            "post": {
                "description": "Create a multi choice question",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "MultiChoiceQuestions"
                ],
                "summary": "Create a multi choice question",
                "parameters": [
                    {
                        "description": "Question to create",
                        "name": "question",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.MultiChoiceQuestionDTO"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.MultiChoiceQuestionDTO"
                        }
                    },
                    "400": {
                        "description": "Invalid request body",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/multi-choice/{id}": {
            "get": {
                "description": "Get a multi choice question",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "MultiChoiceQuestions"
                ],
                "summary": "Get a multi choice question",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID of the question",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.MultiChoiceQuestionDTO"
                        }
                    }
                }
            },
            "put": {
                "description": "Update a multi choice question",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "MultiChoiceQuestions"
                ],
                "summary": "Update a multi choice question",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID of the question",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Question to update",
                        "name": "question",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.MultiChoiceQuestionDTO"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.MultiChoiceQuestionDTO"
                        }
                    },
                    "400": {
                        "description": "Invalid request body",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete a multi choice question",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "MultiChoiceQuestions"
                ],
                "summary": "Delete a multi choice question",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID of the question",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Question deleted",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/short-answer": {
            "get": {
                "description": "Get all short answer questions",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ShortAnswerQuestions"
                ],
                "summary": "Get all short answer questions",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tags to filter questions",
                        "name": "tags",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/models.ShortAnswerQuestionDTO"
                            }
                        }
                    }
                }
            },
            "post": {
                "description": "Create a short answer question",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ShortAnswerQuestions"
                ],
                "summary": "Create a short answer question",
                "parameters": [
                    {
                        "description": "Question to create",
                        "name": "question",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.ShortAnswerQuestionDTO"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.ShortAnswerQuestionDTO"
                        }
                    }
                }
            }
        },
        "/short-answer/{id}": {
            "get": {
                "description": "Get a short answer question",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ShortAnswerQuestions"
                ],
                "summary": "Get a short answer question",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Question ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.ShortAnswerQuestionDTO"
                        }
                    }
                }
            },
            "put": {
                "description": "Update a short answer question",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ShortAnswerQuestions"
                ],
                "summary": "Update a short answer question",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Question ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Question to update",
                        "name": "question",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.ShortAnswerQuestionDTO"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.ShortAnswerQuestionDTO"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete a short answer question",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ShortAnswerQuestions"
                ],
                "summary": "Delete a short answer question",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Question ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.ShortAnswerQuestionDTO"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "models.FormativeAssessmentResponseDTO": {
            "type": "object",
            "properties": {
                "difficulty": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "multi_choice_questions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.MultiChoiceQuestionDTO"
                    }
                },
                "points": {
                    "type": "integer"
                },
                "randomisation": {
                    "type": "boolean"
                },
                "short_answer_questions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.ShortAnswerQuestionDTO"
                    }
                },
                "tags": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "title": {
                    "type": "string"
                },
                "topic": {
                    "type": "string"
                }
            }
        },
        "models.MultiChoiceAnswerDTO": {
            "type": "object",
            "properties": {
                "content": {
                    "type": "string"
                },
                "is_correct": {
                    "type": "boolean"
                }
            }
        },
        "models.MultiChoiceQuestionDTO": {
            "type": "object",
            "properties": {
                "answers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.MultiChoiceAnswerDTO"
                    }
                },
                "credit": {
                    "type": "integer"
                },
                "description": {
                    "type": "string"
                },
                "difficulty": {
                    "type": "string"
                },
                "feedback": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "tags": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "title": {
                    "type": "string"
                }
            }
        },
        "models.ShortAnswerQuestionDTO": {
            "type": "object",
            "properties": {
                "correct_answer": {
                    "type": "string"
                },
                "credit": {
                    "type": "integer"
                },
                "description": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "tags": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "title": {
                    "type": "string"
                }
            }
        }
    }
}`

// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
	Version:          "1.0",
	Host:             "localhost:8080",
	BasePath:         "/api/v1",
	Schemes:          []string{},
	Title:            "Auto Assessment Tool backend RESTful API",
	Description:      "This is the backend RESTful API for the Auto Assessment Tool.",
	InfoInstanceName: "swagger",
	SwaggerTemplate:  docTemplate,
}

func init() {
	swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}
