{
    "openapi": "3.0.0",
    "info": {
      "title": "Testimony API",
      "version": "1.0.0",
      "description": "API for managing testimonies."
    },
    "servers": [
      {
        "url": "https://backend.abyssiniasoftware.com//testimonies",
        "description": "Local server"
      }
    ],
    "paths": {
      "/": {
        "post": {
          "summary": "Create a new testimony",
          "operationId": "createTestimony",
          "tags": ["Testimonies"],
          "requestBody": {
            "required": true,
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "description": {
                      "type": "string"
                    },
                    "service": {
                      "type": "string"
                    },
                    "company": {
                      "type": "string"
                    }
                  },
                  "required": ["description", "service", "company"]
                }
              },
              "multipart/form-data": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "description": {
                      "type": "string"
                    },
                    "service": {
                      "type": "string"
                    },
                    "company": {
                      "type": "string"
                    },
                    "image": {
                      "type": "string",
                      "format": "binary"
                    }
                  },
                  "required": ["description", "service", "company"]
                }
              }
            }
          },
          "responses": {
            "201": {
              "description": "Testimony created successfully",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "message": {
                        "type": "string"
                      },
                      "testimony": {
                        "$ref": "#/components/schemas/Testimony"
                      }
                    }
                  }
                }
              }
            },
            "500": {
              "description": "Server error",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "message": {
                        "type": "string"
                      },
                      "error": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "get": {
          "summary": "Get all testimonies",
          "operationId": "getAllTestimonies",
          "tags": ["Testimonies"],
          "responses": {
            "200": {
              "description": "List of testimonies",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "testimonies": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/Testimony"
                        }
                      }
                    }
                  }
                }
              }
            },
            "500": {
              "description": "Server error",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "message": {
                        "type": "string"
                      },
                      "error": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "/{id}": {
        "get": {
          "summary": "Get a single testimony by ID",
          "operationId": "getTestimonyById",
          "tags": ["Testimonies"],
          "parameters": [
            {
              "name": "id",
              "in": "path",
              "required": true,
              "description": "ID of the testimony to retrieve",
              "schema": {
                "type": "integer"
              }
            }
          ],
          "responses": {
            "200": {
              "description": "Testimony found",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "testimony": {
                        "$ref": "#/components/schemas/Testimony"
                      }
                    }
                  }
                }
              }
            },
            "404": {
              "description": "Testimony not found",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "message": {
                        "type": "string",
                        "example": "Testimony not found"
                      }
                    }
                  }
                }
              }
            },
            "500": {
              "description": "Server error",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "message": {
                        "type": "string"
                      },
                      "error": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "put": {
          "summary": "Update a testimony by ID",
          "operationId": "updateTestimony",
          "tags": ["Testimonies"],
          "parameters": [
            {
              "name": "id",
              "in": "path",
              "required": true,
              "description": "ID of the testimony to update",
              "schema": {
                "type": "integer"
              }
            }
          ],
          "requestBody": {
            "required": true,
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "description": {
                      "type": "string"
                    },
                    "service": {
                      "type": "string"
                    },
                    "company": {
                      "type": "string"
                    }
                  }
                }
              },
              "multipart/form-data": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "description": {
                      "type": "string"
                    },
                    "service": {
                      "type": "string"
                    },
                    "company": {
                      "type": "string"
                    },
                    "image": {
                      "type": "string",
                      "format": "binary"
                    }
                  }
                }
              }
            }
          },
          "responses": {
            "200": {
              "description": "Testimony updated successfully",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "message": {
                        "type": "string"
                      },
                      "testimony": {
                        "$ref": "#/components/schemas/Testimony"
                      }
                    }
                  }
                }
              }
            },
            "404": {
              "description": "Testimony not found",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "message": {
                        "type": "string",
                        "example": "Testimony not found"
                      }
                    }
                  }
                }
              }
            },
            "500": {
              "description": "Server error",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "message": {
                        "type": "string"
                      },
                      "error": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "delete": {
          "summary": "Delete a testimony by ID",
          "operationId": "deleteTestimony",
          "tags": ["Testimonies"],
          "parameters": [
            {
              "name": "id",
              "in": "path",
              "required": true,
              "description": "ID of the testimony to delete",
              "schema": {
                "type": "integer"
              }
            }
          ],
          "responses": {
            "200": {
              "description": "Testimony deleted successfully",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "message": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            },
            "404": {
              "description": "Testimony not found",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "message": {
                        "type": "string",
                        "example": "Testimony not found"
                      }
                    }
                  }
                }
              }
            },
            "500": {
              "description": "Server error",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "message": {
                        "type": "string"
                      },
                      "error": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "components": {
      "schemas": {
        "Testimony": {
          "type": "object",
          "properties": {
            "id": {
              "type": "integer"
            },
            "description": {
              "type": "string"
            },
            "service": {
              "type": "string"
            },
            "company": {
              "type": "string"
            },
            "image": {
              "type": "string"
            }
          }
        }
      }
    }
  }
  