{
  "openapi": "3.0.0",
  "info": {
    "title": "Growfund API",
    "version": "1.0.0",
    "description": "Auto-generated OpenAPI 3.0 spec for Growfund plugin"
  },
  "components": {
    "schemas": {},
    "parameters": {}
  },
  "paths": {
    "/campaigns": {
      "get": {
        "tags": [
          "Campaigns"
        ],
        "summary": "List all campaigns",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "nullable": true
            },
            "required": false,
            "name": "search",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "nullable": true
            },
            "required": false,
            "name": "status",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "nullable": true
            },
            "required": false,
            "name": "start_date",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "nullable": true
            },
            "required": false,
            "name": "end_date",
            "in": "query"
          },
          {
            "schema": {
              "type": "number",
              "default": 1
            },
            "required": false,
            "name": "page",
            "in": "query"
          },
          {
            "schema": {
              "type": "number",
              "default": 10
            },
            "required": false,
            "name": "limit",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated list of campaigns",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "results": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "title": {
                                "type": "string",
                                "maxLength": 255
                              },
                              "slug": {
                                "type": "string",
                                "nullable": true,
                                "maxLength": 300
                              },
                              "description": {
                                "type": "string",
                                "nullable": true
                              },
                              "story": {
                                "type": "string",
                                "nullable": true
                              },
                              "images": {
                                "type": "array",
                                "nullable": true,
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "filename": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "url": {
                                      "type": "string"
                                    },
                                    "sizes": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "additionalProperties": {
                                            "type": "object",
                                            "properties": {
                                              "height": {
                                                "type": "number",
                                                "nullable": true
                                              },
                                              "width": {
                                                "type": "number",
                                                "nullable": true
                                              },
                                              "url": {
                                                "type": "string",
                                                "nullable": true
                                              },
                                              "orientation": {
                                                "type": "string",
                                                "nullable": true
                                              }
                                            }
                                          }
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "nullable": true
                                          }
                                        },
                                        {
                                          "nullable": true
                                        }
                                      ]
                                    },
                                    "height": {
                                      "type": "number",
                                      "nullable": true
                                    },
                                    "width": {
                                      "type": "number",
                                      "nullable": true
                                    },
                                    "filesize": {
                                      "type": "number",
                                      "nullable": true
                                    },
                                    "mime": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "type": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "thumb": {
                                      "type": "object",
                                      "nullable": true,
                                      "properties": {
                                        "src": {
                                          "type": "string"
                                        },
                                        "width": {
                                          "type": "number"
                                        },
                                        "height": {
                                          "type": "number"
                                        }
                                      },
                                      "required": [
                                        "src",
                                        "width",
                                        "height"
                                      ]
                                    },
                                    "author": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "authorName": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "date": {
                                      "type": "string",
                                      "nullable": true
                                    }
                                  },
                                  "required": [
                                    "url"
                                  ]
                                }
                              },
                              "video": {
                                "type": "object",
                                "nullable": true,
                                "properties": {
                                  "id": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "filename": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "url": {
                                    "type": "string"
                                  },
                                  "sizes": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "additionalProperties": {
                                          "type": "object",
                                          "properties": {
                                            "height": {
                                              "type": "number",
                                              "nullable": true
                                            },
                                            "width": {
                                              "type": "number",
                                              "nullable": true
                                            },
                                            "url": {
                                              "type": "string",
                                              "nullable": true
                                            },
                                            "orientation": {
                                              "type": "string",
                                              "nullable": true
                                            }
                                          }
                                        }
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "nullable": true
                                        }
                                      },
                                      {
                                        "nullable": true
                                      }
                                    ]
                                  },
                                  "height": {
                                    "type": "number",
                                    "nullable": true
                                  },
                                  "width": {
                                    "type": "number",
                                    "nullable": true
                                  },
                                  "filesize": {
                                    "type": "number",
                                    "nullable": true
                                  },
                                  "mime": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "type": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "thumb": {
                                    "type": "object",
                                    "nullable": true,
                                    "properties": {
                                      "src": {
                                        "type": "string"
                                      },
                                      "width": {
                                        "type": "number"
                                      },
                                      "height": {
                                        "type": "number"
                                      }
                                    },
                                    "required": [
                                      "src",
                                      "width",
                                      "height"
                                    ]
                                  },
                                  "author": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "authorName": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "date": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "poster": {
                                    "type": "object",
                                    "nullable": true,
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "nullable": true
                                      },
                                      "filename": {
                                        "type": "string",
                                        "nullable": true
                                      },
                                      "url": {
                                        "type": "string"
                                      },
                                      "sizes": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "additionalProperties": {
                                              "type": "object",
                                              "properties": {
                                                "height": {
                                                  "type": "number",
                                                  "nullable": true
                                                },
                                                "width": {
                                                  "type": "number",
                                                  "nullable": true
                                                },
                                                "url": {
                                                  "type": "string",
                                                  "nullable": true
                                                },
                                                "orientation": {
                                                  "type": "string",
                                                  "nullable": true
                                                }
                                              }
                                            }
                                          },
                                          {
                                            "type": "array",
                                            "items": {
                                              "type": "string",
                                              "nullable": true
                                            }
                                          },
                                          {
                                            "nullable": true
                                          }
                                        ]
                                      },
                                      "height": {
                                        "type": "number",
                                        "nullable": true
                                      },
                                      "width": {
                                        "type": "number",
                                        "nullable": true
                                      },
                                      "filesize": {
                                        "type": "number",
                                        "nullable": true
                                      },
                                      "mime": {
                                        "type": "string",
                                        "nullable": true
                                      },
                                      "type": {
                                        "type": "string",
                                        "nullable": true
                                      },
                                      "thumb": {
                                        "type": "object",
                                        "nullable": true,
                                        "properties": {
                                          "src": {
                                            "type": "string"
                                          },
                                          "width": {
                                            "type": "number"
                                          },
                                          "height": {
                                            "type": "number"
                                          }
                                        },
                                        "required": [
                                          "src",
                                          "width",
                                          "height"
                                        ]
                                      },
                                      "author": {
                                        "type": "string",
                                        "nullable": true
                                      },
                                      "authorName": {
                                        "type": "string",
                                        "nullable": true
                                      },
                                      "date": {
                                        "type": "string",
                                        "nullable": true
                                      }
                                    },
                                    "required": [
                                      "url"
                                    ]
                                  }
                                },
                                "required": [
                                  "url"
                                ]
                              },
                              "is_featured": {
                                "type": "boolean",
                                "default": false
                              },
                              "category": {
                                "type": "string",
                                "nullable": true
                              },
                              "sub_category": {
                                "type": "string",
                                "nullable": true
                              },
                              "start_date": {
                                "type": "string",
                                "nullable": true
                              },
                              "end_date": {
                                "type": "string",
                                "nullable": true
                              },
                              "location": {
                                "type": "string",
                                "nullable": true
                              },
                              "tags": {
                                "type": "array",
                                "nullable": true,
                                "items": {
                                  "type": "string"
                                }
                              },
                              "collaborators": {
                                "type": "array",
                                "nullable": true,
                                "items": {
                                  "type": "string"
                                }
                              },
                              "show_collaborator_list": {
                                "type": "boolean",
                                "default": true
                              },
                              "status": {
                                "type": "string",
                                "enum": [
                                  "draft",
                                  "published",
                                  "pending",
                                  "funded",
                                  "declined",
                                  "completed",
                                  "trashed",
                                  "declined"
                                ],
                                "default": "draft"
                              },
                              "risks": {
                                "type": "string",
                                "nullable": true
                              },
                              "has_goal": {
                                "type": "boolean",
                                "default": true
                              },
                              "goal_type": {
                                "type": "string",
                                "nullable": true,
                                "enum": [
                                  "raised-amount",
                                  "number-of-contributions",
                                  "number-of-contributors"
                                ]
                              },
                              "goal_amount": {
                                "type": "number",
                                "nullable": true
                              },
                              "reaching_action": {
                                "type": "string",
                                "nullable": true,
                                "enum": [
                                  "close",
                                  "continue"
                                ]
                              },
                              "confirmation_title": {
                                "type": "string",
                                "nullable": true
                              },
                              "confirmation_description": {
                                "type": "string",
                                "nullable": true
                              },
                              "provide_confirmation_pdf_receipt": {
                                "type": "boolean",
                                "default": true
                              },
                              "faqs": {
                                "type": "array",
                                "nullable": true,
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "question": {
                                      "type": "string"
                                    },
                                    "answer": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "question",
                                    "answer"
                                  ]
                                }
                              },
                              "created_at": {
                                "type": "string",
                                "nullable": true,
                                "format": "date-time"
                              },
                              "updated_at": {
                                "type": "string",
                                "nullable": true,
                                "format": "date-time"
                              },
                              "created_by": {
                                "type": "string",
                                "nullable": true
                              },
                              "updated_by": {
                                "type": "string",
                                "nullable": true
                              },
                              "appreciation_type": {
                                "type": "string",
                                "nullable": true,
                                "enum": [
                                  "goodies",
                                  "giving-thanks"
                                ]
                              },
                              "giving_thanks": {
                                "type": "array",
                                "nullable": true,
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "pledge_from": {
                                      "type": "number"
                                    },
                                    "pledge_to": {
                                      "type": "number"
                                    },
                                    "appreciation_message": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "pledge_from",
                                    "pledge_to",
                                    "appreciation_message"
                                  ]
                                }
                              },
                              "rewards": {
                                "type": "array",
                                "nullable": true,
                                "items": {
                                  "type": "string"
                                }
                              },
                              "allow_pledge_without_reward": {
                                "type": "boolean",
                                "default": false
                              },
                              "min_pledge_amount": {
                                "type": "number",
                                "nullable": true
                              },
                              "max_pledge_amount": {
                                "type": "number",
                                "nullable": true
                              },
                              "number_of_donations": {
                                "type": "number",
                                "nullable": true
                              },
                              "number_of_donors": {
                                "type": "number",
                                "nullable": true
                              },
                              "allow_custom_donation": {
                                "type": "boolean",
                                "nullable": true,
                                "default": false
                              },
                              "min_donation_amount": {
                                "type": "number",
                                "nullable": true
                              },
                              "max_donation_amount": {
                                "type": "number",
                                "nullable": true
                              },
                              "suggested_option_type": {
                                "type": "string",
                                "nullable": true,
                                "enum": [
                                  "amount-only",
                                  "amount-description"
                                ],
                                "default": "amount-only"
                              },
                              "suggested_options": {
                                "type": "array",
                                "nullable": true,
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "amount": {
                                      "type": "number"
                                    },
                                    "description": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "is_default": {
                                      "type": "boolean",
                                      "default": false
                                    }
                                  },
                                  "required": [
                                    "amount"
                                  ]
                                },
                                "default": []
                              },
                              "has_tribute": {
                                "type": "boolean",
                                "default": true
                              },
                              "tribute_requirement": {
                                "type": "string",
                                "nullable": true,
                                "enum": [
                                  "required",
                                  "optional"
                                ],
                                "default": "optional"
                              },
                              "tribute_title": {
                                "type": "string",
                                "nullable": true
                              },
                              "tribute_options": {
                                "type": "array",
                                "nullable": true,
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "message": {
                                      "type": "string"
                                    },
                                    "is_editing": {
                                      "type": "boolean",
                                      "default": false
                                    },
                                    "is_default": {
                                      "type": "boolean",
                                      "default": false
                                    }
                                  },
                                  "required": [
                                    "message"
                                  ]
                                },
                                "default": []
                              },
                              "tribute_notification_preference": {
                                "type": "string",
                                "nullable": true,
                                "enum": [
                                  "send-ecard",
                                  "send-post-mail",
                                  "send-ecard-and-post-mail",
                                  "donor-decide"
                                ],
                                "default": "donor-decide"
                              },
                              "fund_selection_type": {
                                "type": "string",
                                "nullable": true,
                                "enum": [
                                  "fixed",
                                  "donor-decide"
                                ],
                                "default": "fixed"
                              },
                              "default_fund": {
                                "type": "string",
                                "nullable": true
                              },
                              "fund_choices": {
                                "type": "array",
                                "nullable": true,
                                "items": {
                                  "type": "string"
                                }
                              },
                              "donation_count": {
                                "type": "number",
                                "nullable": true
                              },
                              "number_of_contributions": {
                                "type": "number",
                                "nullable": true
                              },
                              "number_of_contributors": {
                                "type": "number",
                                "nullable": true
                              },
                              "fund_raised": {
                                "type": "number",
                                "nullable": true
                              },
                              "is_interactive": {
                                "type": "boolean",
                                "default": false
                              },
                              "is_launched": {
                                "type": "boolean",
                                "default": false
                              },
                              "last_decline_reason": {
                                "type": "string",
                                "nullable": true
                              },
                              "preview_url": {
                                "type": "string",
                                "nullable": true
                              },
                              "number_of_individual_contributions": {
                                "type": "number",
                                "default": 0
                              },
                              "uncharged_pledge_count": {
                                "type": "number",
                                "default": 0
                              },
                              "is_backed": {
                                "type": "boolean",
                                "default": false
                              },
                              "is_paused": {
                                "type": "boolean",
                                "default": false
                              },
                              "is_hidden": {
                                "type": "boolean",
                                "default": false
                              },
                              "is_ended": {
                                "type": "boolean",
                                "default": false
                              }
                            },
                            "required": [
                              "id",
                              "title"
                            ]
                          }
                        },
                        "total": {
                          "type": "number"
                        },
                        "count": {
                          "type": "number"
                        },
                        "per_page": {
                          "type": "number"
                        },
                        "has_more": {
                          "type": "boolean"
                        },
                        "current_page": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "results",
                        "total",
                        "count",
                        "per_page",
                        "has_more",
                        "current_page"
                      ]
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Campaigns"
        ],
        "summary": "Create a new draft campaign",
        "responses": {
          "201": {
            "description": "Campaign created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id"
                      ]
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/campaigns/{id}": {
      "put": {
        "tags": [
          "Campaigns"
        ],
        "summary": "Update a campaign by ID",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "id",
            "in": "path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "slug": {
                    "type": "string",
                    "nullable": true,
                    "maxLength": 300
                  },
                  "description": {
                    "type": "string",
                    "nullable": true
                  },
                  "story": {
                    "type": "string",
                    "nullable": true
                  },
                  "images": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "string"
                    }
                  },
                  "video": {
                    "type": "string",
                    "nullable": true
                  },
                  "is_featured": {
                    "type": "boolean",
                    "default": false
                  },
                  "category": {
                    "type": "string",
                    "nullable": true
                  },
                  "sub_category": {
                    "type": "string",
                    "nullable": true
                  },
                  "start_date": {
                    "type": "string",
                    "nullable": true
                  },
                  "end_date": {
                    "type": "string",
                    "nullable": true
                  },
                  "location": {
                    "type": "string",
                    "nullable": true
                  },
                  "tags": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "string"
                    }
                  },
                  "collaborators": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "string"
                    }
                  },
                  "show_collaborator_list": {
                    "type": "boolean",
                    "default": true
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "published",
                      "pending",
                      "funded",
                      "declined",
                      "completed",
                      "trashed",
                      "declined"
                    ],
                    "default": "draft"
                  },
                  "risks": {
                    "type": "string",
                    "nullable": true
                  },
                  "has_goal": {
                    "type": "boolean",
                    "default": true
                  },
                  "goal_type": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "raised-amount",
                      "number-of-contributions",
                      "number-of-contributors"
                    ]
                  },
                  "goal_amount": {
                    "type": "number",
                    "nullable": true
                  },
                  "reaching_action": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "close",
                      "continue"
                    ]
                  },
                  "confirmation_title": {
                    "type": "string",
                    "nullable": true
                  },
                  "confirmation_description": {
                    "type": "string",
                    "nullable": true
                  },
                  "provide_confirmation_pdf_receipt": {
                    "type": "boolean",
                    "default": true
                  },
                  "faqs": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "object",
                      "properties": {
                        "question": {
                          "type": "string"
                        },
                        "answer": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "question",
                        "answer"
                      ]
                    }
                  },
                  "appreciation_type": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "goodies",
                      "giving-thanks"
                    ]
                  },
                  "giving_thanks": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "object",
                      "properties": {
                        "pledge_from": {
                          "type": "number"
                        },
                        "pledge_to": {
                          "type": "number"
                        },
                        "appreciation_message": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "pledge_from",
                        "pledge_to",
                        "appreciation_message"
                      ]
                    }
                  },
                  "rewards": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "string"
                    }
                  },
                  "allow_pledge_without_reward": {
                    "type": "boolean",
                    "default": false
                  },
                  "min_pledge_amount": {
                    "type": "number",
                    "nullable": true
                  },
                  "max_pledge_amount": {
                    "type": "number",
                    "nullable": true
                  }
                },
                "required": [
                  "id",
                  "title"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Campaign updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "boolean",
                      "default": true
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Campaigns"
        ],
        "summary": "Delete a campaign by ID",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Campaign deleted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "boolean",
                      "default": true
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "errors",
                    "message"
                  ]
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Campaigns"
        ],
        "summary": "Get a campaign by ID",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Campaign retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string",
                      "maxLength": 255
                    },
                    "slug": {
                      "type": "string",
                      "nullable": true,
                      "maxLength": 300
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "story": {
                      "type": "string",
                      "nullable": true
                    },
                    "images": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "nullable": true
                          },
                          "filename": {
                            "type": "string",
                            "nullable": true
                          },
                          "url": {
                            "type": "string"
                          },
                          "sizes": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": {
                                  "type": "object",
                                  "properties": {
                                    "height": {
                                      "type": "number",
                                      "nullable": true
                                    },
                                    "width": {
                                      "type": "number",
                                      "nullable": true
                                    },
                                    "url": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "orientation": {
                                      "type": "string",
                                      "nullable": true
                                    }
                                  }
                                }
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "nullable": true
                                }
                              },
                              {
                                "nullable": true
                              }
                            ]
                          },
                          "height": {
                            "type": "number",
                            "nullable": true
                          },
                          "width": {
                            "type": "number",
                            "nullable": true
                          },
                          "filesize": {
                            "type": "number",
                            "nullable": true
                          },
                          "mime": {
                            "type": "string",
                            "nullable": true
                          },
                          "type": {
                            "type": "string",
                            "nullable": true
                          },
                          "thumb": {
                            "type": "object",
                            "nullable": true,
                            "properties": {
                              "src": {
                                "type": "string"
                              },
                              "width": {
                                "type": "number"
                              },
                              "height": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "src",
                              "width",
                              "height"
                            ]
                          },
                          "author": {
                            "type": "string",
                            "nullable": true
                          },
                          "authorName": {
                            "type": "string",
                            "nullable": true
                          },
                          "date": {
                            "type": "string",
                            "nullable": true
                          }
                        },
                        "required": [
                          "url"
                        ]
                      }
                    },
                    "video": {
                      "type": "object",
                      "nullable": true,
                      "properties": {
                        "id": {
                          "type": "string",
                          "nullable": true
                        },
                        "filename": {
                          "type": "string",
                          "nullable": true
                        },
                        "url": {
                          "type": "string"
                        },
                        "sizes": {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "height": {
                                    "type": "number",
                                    "nullable": true
                                  },
                                  "width": {
                                    "type": "number",
                                    "nullable": true
                                  },
                                  "url": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "orientation": {
                                    "type": "string",
                                    "nullable": true
                                  }
                                }
                              }
                            },
                            {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "nullable": true
                              }
                            },
                            {
                              "nullable": true
                            }
                          ]
                        },
                        "height": {
                          "type": "number",
                          "nullable": true
                        },
                        "width": {
                          "type": "number",
                          "nullable": true
                        },
                        "filesize": {
                          "type": "number",
                          "nullable": true
                        },
                        "mime": {
                          "type": "string",
                          "nullable": true
                        },
                        "type": {
                          "type": "string",
                          "nullable": true
                        },
                        "thumb": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "src": {
                              "type": "string"
                            },
                            "width": {
                              "type": "number"
                            },
                            "height": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "src",
                            "width",
                            "height"
                          ]
                        },
                        "author": {
                          "type": "string",
                          "nullable": true
                        },
                        "authorName": {
                          "type": "string",
                          "nullable": true
                        },
                        "date": {
                          "type": "string",
                          "nullable": true
                        },
                        "poster": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "id": {
                              "type": "string",
                              "nullable": true
                            },
                            "filename": {
                              "type": "string",
                              "nullable": true
                            },
                            "url": {
                              "type": "string"
                            },
                            "sizes": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "height": {
                                        "type": "number",
                                        "nullable": true
                                      },
                                      "width": {
                                        "type": "number",
                                        "nullable": true
                                      },
                                      "url": {
                                        "type": "string",
                                        "nullable": true
                                      },
                                      "orientation": {
                                        "type": "string",
                                        "nullable": true
                                      }
                                    }
                                  }
                                },
                                {
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "nullable": true
                                  }
                                },
                                {
                                  "nullable": true
                                }
                              ]
                            },
                            "height": {
                              "type": "number",
                              "nullable": true
                            },
                            "width": {
                              "type": "number",
                              "nullable": true
                            },
                            "filesize": {
                              "type": "number",
                              "nullable": true
                            },
                            "mime": {
                              "type": "string",
                              "nullable": true
                            },
                            "type": {
                              "type": "string",
                              "nullable": true
                            },
                            "thumb": {
                              "type": "object",
                              "nullable": true,
                              "properties": {
                                "src": {
                                  "type": "string"
                                },
                                "width": {
                                  "type": "number"
                                },
                                "height": {
                                  "type": "number"
                                }
                              },
                              "required": [
                                "src",
                                "width",
                                "height"
                              ]
                            },
                            "author": {
                              "type": "string",
                              "nullable": true
                            },
                            "authorName": {
                              "type": "string",
                              "nullable": true
                            },
                            "date": {
                              "type": "string",
                              "nullable": true
                            }
                          },
                          "required": [
                            "url"
                          ]
                        }
                      },
                      "required": [
                        "url"
                      ]
                    },
                    "is_featured": {
                      "type": "boolean",
                      "default": false
                    },
                    "category": {
                      "type": "string",
                      "nullable": true
                    },
                    "sub_category": {
                      "type": "string",
                      "nullable": true
                    },
                    "start_date": {
                      "type": "string",
                      "nullable": true
                    },
                    "end_date": {
                      "type": "string",
                      "nullable": true
                    },
                    "location": {
                      "type": "string",
                      "nullable": true
                    },
                    "tags": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "string"
                      }
                    },
                    "collaborators": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "string"
                      }
                    },
                    "show_collaborator_list": {
                      "type": "boolean",
                      "default": true
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "draft",
                        "published",
                        "pending",
                        "funded",
                        "declined",
                        "completed",
                        "trashed",
                        "declined"
                      ],
                      "default": "draft"
                    },
                    "risks": {
                      "type": "string",
                      "nullable": true
                    },
                    "has_goal": {
                      "type": "boolean",
                      "default": true
                    },
                    "goal_type": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "raised-amount",
                        "number-of-contributions",
                        "number-of-contributors"
                      ]
                    },
                    "goal_amount": {
                      "type": "number",
                      "nullable": true
                    },
                    "reaching_action": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "close",
                        "continue"
                      ]
                    },
                    "confirmation_title": {
                      "type": "string",
                      "nullable": true
                    },
                    "confirmation_description": {
                      "type": "string",
                      "nullable": true
                    },
                    "provide_confirmation_pdf_receipt": {
                      "type": "boolean",
                      "default": true
                    },
                    "faqs": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "object",
                        "properties": {
                          "question": {
                            "type": "string"
                          },
                          "answer": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "question",
                          "answer"
                        ]
                      }
                    },
                    "created_at": {
                      "type": "string",
                      "nullable": true,
                      "format": "date-time"
                    },
                    "updated_at": {
                      "type": "string",
                      "nullable": true,
                      "format": "date-time"
                    },
                    "created_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "updated_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "appreciation_type": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "goodies",
                        "giving-thanks"
                      ]
                    },
                    "giving_thanks": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "object",
                        "properties": {
                          "pledge_from": {
                            "type": "number"
                          },
                          "pledge_to": {
                            "type": "number"
                          },
                          "appreciation_message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "pledge_from",
                          "pledge_to",
                          "appreciation_message"
                        ]
                      }
                    },
                    "rewards": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "string"
                      }
                    },
                    "allow_pledge_without_reward": {
                      "type": "boolean",
                      "default": false
                    },
                    "min_pledge_amount": {
                      "type": "number",
                      "nullable": true
                    },
                    "max_pledge_amount": {
                      "type": "number",
                      "nullable": true
                    },
                    "number_of_donations": {
                      "type": "number",
                      "nullable": true
                    },
                    "number_of_donors": {
                      "type": "number",
                      "nullable": true
                    },
                    "allow_custom_donation": {
                      "type": "boolean",
                      "nullable": true,
                      "default": false
                    },
                    "min_donation_amount": {
                      "type": "number",
                      "nullable": true
                    },
                    "max_donation_amount": {
                      "type": "number",
                      "nullable": true
                    },
                    "suggested_option_type": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "amount-only",
                        "amount-description"
                      ],
                      "default": "amount-only"
                    },
                    "suggested_options": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "object",
                        "properties": {
                          "amount": {
                            "type": "number"
                          },
                          "description": {
                            "type": "string",
                            "nullable": true
                          },
                          "is_default": {
                            "type": "boolean",
                            "default": false
                          }
                        },
                        "required": [
                          "amount"
                        ]
                      },
                      "default": []
                    },
                    "has_tribute": {
                      "type": "boolean",
                      "default": true
                    },
                    "tribute_requirement": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "required",
                        "optional"
                      ],
                      "default": "optional"
                    },
                    "tribute_title": {
                      "type": "string",
                      "nullable": true
                    },
                    "tribute_options": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "object",
                        "properties": {
                          "message": {
                            "type": "string"
                          },
                          "is_editing": {
                            "type": "boolean",
                            "default": false
                          },
                          "is_default": {
                            "type": "boolean",
                            "default": false
                          }
                        },
                        "required": [
                          "message"
                        ]
                      },
                      "default": []
                    },
                    "tribute_notification_preference": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "send-ecard",
                        "send-post-mail",
                        "send-ecard-and-post-mail",
                        "donor-decide"
                      ],
                      "default": "donor-decide"
                    },
                    "fund_selection_type": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "fixed",
                        "donor-decide"
                      ],
                      "default": "fixed"
                    },
                    "default_fund": {
                      "type": "string",
                      "nullable": true
                    },
                    "fund_choices": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "string"
                      }
                    },
                    "donation_count": {
                      "type": "number",
                      "nullable": true
                    },
                    "number_of_contributions": {
                      "type": "number",
                      "nullable": true
                    },
                    "number_of_contributors": {
                      "type": "number",
                      "nullable": true
                    },
                    "fund_raised": {
                      "type": "number",
                      "nullable": true
                    },
                    "is_interactive": {
                      "type": "boolean",
                      "default": false
                    },
                    "is_launched": {
                      "type": "boolean",
                      "default": false
                    },
                    "last_decline_reason": {
                      "type": "string",
                      "nullable": true
                    },
                    "preview_url": {
                      "type": "string",
                      "nullable": true
                    },
                    "number_of_individual_contributions": {
                      "type": "number",
                      "default": 0
                    },
                    "uncharged_pledge_count": {
                      "type": "number",
                      "default": 0
                    },
                    "is_backed": {
                      "type": "boolean",
                      "default": false
                    },
                    "is_paused": {
                      "type": "boolean",
                      "default": false
                    },
                    "is_hidden": {
                      "type": "boolean",
                      "default": false
                    },
                    "is_ended": {
                      "type": "boolean",
                      "default": false
                    }
                  },
                  "required": [
                    "id",
                    "title"
                  ]
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Campaigns"
        ],
        "summary": "Update a campaign status by ID",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "id",
            "in": "path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "published",
                      "pending",
                      "funded",
                      "declined",
                      "completed",
                      "trashed",
                      "declined",
                      "declined"
                    ]
                  },
                  "decline_reason": {
                    "type": "string",
                    "nullable": true,
                    "description": "Decline reason is required if status is declined"
                  }
                },
                "required": [
                  "status"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Campaign updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "boolean",
                      "default": true
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/campaigns/{id}/overview": {
      "get": {
        "tags": [
          "Campaigns"
        ],
        "summary": "Get a campaign overview by ID",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Campaign overview retrieved (TODO: Add proper schema)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string",
                      "maxLength": 255
                    },
                    "slug": {
                      "type": "string",
                      "nullable": true,
                      "maxLength": 300
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "story": {
                      "type": "string",
                      "nullable": true
                    },
                    "images": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "nullable": true
                          },
                          "filename": {
                            "type": "string",
                            "nullable": true
                          },
                          "url": {
                            "type": "string"
                          },
                          "sizes": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": {
                                  "type": "object",
                                  "properties": {
                                    "height": {
                                      "type": "number",
                                      "nullable": true
                                    },
                                    "width": {
                                      "type": "number",
                                      "nullable": true
                                    },
                                    "url": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "orientation": {
                                      "type": "string",
                                      "nullable": true
                                    }
                                  }
                                }
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "nullable": true
                                }
                              },
                              {
                                "nullable": true
                              }
                            ]
                          },
                          "height": {
                            "type": "number",
                            "nullable": true
                          },
                          "width": {
                            "type": "number",
                            "nullable": true
                          },
                          "filesize": {
                            "type": "number",
                            "nullable": true
                          },
                          "mime": {
                            "type": "string",
                            "nullable": true
                          },
                          "type": {
                            "type": "string",
                            "nullable": true
                          },
                          "thumb": {
                            "type": "object",
                            "nullable": true,
                            "properties": {
                              "src": {
                                "type": "string"
                              },
                              "width": {
                                "type": "number"
                              },
                              "height": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "src",
                              "width",
                              "height"
                            ]
                          },
                          "author": {
                            "type": "string",
                            "nullable": true
                          },
                          "authorName": {
                            "type": "string",
                            "nullable": true
                          },
                          "date": {
                            "type": "string",
                            "nullable": true
                          }
                        },
                        "required": [
                          "url"
                        ]
                      }
                    },
                    "video": {
                      "type": "object",
                      "nullable": true,
                      "properties": {
                        "id": {
                          "type": "string",
                          "nullable": true
                        },
                        "filename": {
                          "type": "string",
                          "nullable": true
                        },
                        "url": {
                          "type": "string"
                        },
                        "sizes": {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "height": {
                                    "type": "number",
                                    "nullable": true
                                  },
                                  "width": {
                                    "type": "number",
                                    "nullable": true
                                  },
                                  "url": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "orientation": {
                                    "type": "string",
                                    "nullable": true
                                  }
                                }
                              }
                            },
                            {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "nullable": true
                              }
                            },
                            {
                              "nullable": true
                            }
                          ]
                        },
                        "height": {
                          "type": "number",
                          "nullable": true
                        },
                        "width": {
                          "type": "number",
                          "nullable": true
                        },
                        "filesize": {
                          "type": "number",
                          "nullable": true
                        },
                        "mime": {
                          "type": "string",
                          "nullable": true
                        },
                        "type": {
                          "type": "string",
                          "nullable": true
                        },
                        "thumb": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "src": {
                              "type": "string"
                            },
                            "width": {
                              "type": "number"
                            },
                            "height": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "src",
                            "width",
                            "height"
                          ]
                        },
                        "author": {
                          "type": "string",
                          "nullable": true
                        },
                        "authorName": {
                          "type": "string",
                          "nullable": true
                        },
                        "date": {
                          "type": "string",
                          "nullable": true
                        },
                        "poster": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "id": {
                              "type": "string",
                              "nullable": true
                            },
                            "filename": {
                              "type": "string",
                              "nullable": true
                            },
                            "url": {
                              "type": "string"
                            },
                            "sizes": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "height": {
                                        "type": "number",
                                        "nullable": true
                                      },
                                      "width": {
                                        "type": "number",
                                        "nullable": true
                                      },
                                      "url": {
                                        "type": "string",
                                        "nullable": true
                                      },
                                      "orientation": {
                                        "type": "string",
                                        "nullable": true
                                      }
                                    }
                                  }
                                },
                                {
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "nullable": true
                                  }
                                },
                                {
                                  "nullable": true
                                }
                              ]
                            },
                            "height": {
                              "type": "number",
                              "nullable": true
                            },
                            "width": {
                              "type": "number",
                              "nullable": true
                            },
                            "filesize": {
                              "type": "number",
                              "nullable": true
                            },
                            "mime": {
                              "type": "string",
                              "nullable": true
                            },
                            "type": {
                              "type": "string",
                              "nullable": true
                            },
                            "thumb": {
                              "type": "object",
                              "nullable": true,
                              "properties": {
                                "src": {
                                  "type": "string"
                                },
                                "width": {
                                  "type": "number"
                                },
                                "height": {
                                  "type": "number"
                                }
                              },
                              "required": [
                                "src",
                                "width",
                                "height"
                              ]
                            },
                            "author": {
                              "type": "string",
                              "nullable": true
                            },
                            "authorName": {
                              "type": "string",
                              "nullable": true
                            },
                            "date": {
                              "type": "string",
                              "nullable": true
                            }
                          },
                          "required": [
                            "url"
                          ]
                        }
                      },
                      "required": [
                        "url"
                      ]
                    },
                    "is_featured": {
                      "type": "boolean",
                      "default": false
                    },
                    "category": {
                      "type": "string",
                      "nullable": true
                    },
                    "sub_category": {
                      "type": "string",
                      "nullable": true
                    },
                    "start_date": {
                      "type": "string",
                      "nullable": true
                    },
                    "end_date": {
                      "type": "string",
                      "nullable": true
                    },
                    "location": {
                      "type": "string",
                      "nullable": true
                    },
                    "tags": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "string"
                      }
                    },
                    "collaborators": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "string"
                      }
                    },
                    "show_collaborator_list": {
                      "type": "boolean",
                      "default": true
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "draft",
                        "published",
                        "pending",
                        "funded",
                        "declined",
                        "completed",
                        "trashed",
                        "declined"
                      ],
                      "default": "draft"
                    },
                    "risks": {
                      "type": "string",
                      "nullable": true
                    },
                    "has_goal": {
                      "type": "boolean",
                      "default": true
                    },
                    "goal_type": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "raised-amount",
                        "number-of-contributions",
                        "number-of-contributors"
                      ]
                    },
                    "goal_amount": {
                      "type": "number",
                      "nullable": true
                    },
                    "reaching_action": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "close",
                        "continue"
                      ]
                    },
                    "confirmation_title": {
                      "type": "string",
                      "nullable": true
                    },
                    "confirmation_description": {
                      "type": "string",
                      "nullable": true
                    },
                    "provide_confirmation_pdf_receipt": {
                      "type": "boolean",
                      "default": true
                    },
                    "faqs": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "object",
                        "properties": {
                          "question": {
                            "type": "string"
                          },
                          "answer": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "question",
                          "answer"
                        ]
                      }
                    },
                    "created_at": {
                      "type": "string",
                      "nullable": true,
                      "format": "date-time"
                    },
                    "updated_at": {
                      "type": "string",
                      "nullable": true,
                      "format": "date-time"
                    },
                    "created_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "updated_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "appreciation_type": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "goodies",
                        "giving-thanks"
                      ]
                    },
                    "giving_thanks": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "object",
                        "properties": {
                          "pledge_from": {
                            "type": "number"
                          },
                          "pledge_to": {
                            "type": "number"
                          },
                          "appreciation_message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "pledge_from",
                          "pledge_to",
                          "appreciation_message"
                        ]
                      }
                    },
                    "rewards": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "string"
                      }
                    },
                    "allow_pledge_without_reward": {
                      "type": "boolean",
                      "default": false
                    },
                    "min_pledge_amount": {
                      "type": "number",
                      "nullable": true
                    },
                    "max_pledge_amount": {
                      "type": "number",
                      "nullable": true
                    },
                    "number_of_donations": {
                      "type": "number",
                      "nullable": true
                    },
                    "number_of_donors": {
                      "type": "number",
                      "nullable": true
                    },
                    "allow_custom_donation": {
                      "type": "boolean",
                      "nullable": true,
                      "default": false
                    },
                    "min_donation_amount": {
                      "type": "number",
                      "nullable": true
                    },
                    "max_donation_amount": {
                      "type": "number",
                      "nullable": true
                    },
                    "suggested_option_type": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "amount-only",
                        "amount-description"
                      ],
                      "default": "amount-only"
                    },
                    "suggested_options": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "object",
                        "properties": {
                          "amount": {
                            "type": "number"
                          },
                          "description": {
                            "type": "string",
                            "nullable": true
                          },
                          "is_default": {
                            "type": "boolean",
                            "default": false
                          }
                        },
                        "required": [
                          "amount"
                        ]
                      },
                      "default": []
                    },
                    "has_tribute": {
                      "type": "boolean",
                      "default": true
                    },
                    "tribute_requirement": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "required",
                        "optional"
                      ],
                      "default": "optional"
                    },
                    "tribute_title": {
                      "type": "string",
                      "nullable": true
                    },
                    "tribute_options": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "object",
                        "properties": {
                          "message": {
                            "type": "string"
                          },
                          "is_editing": {
                            "type": "boolean",
                            "default": false
                          },
                          "is_default": {
                            "type": "boolean",
                            "default": false
                          }
                        },
                        "required": [
                          "message"
                        ]
                      },
                      "default": []
                    },
                    "tribute_notification_preference": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "send-ecard",
                        "send-post-mail",
                        "send-ecard-and-post-mail",
                        "donor-decide"
                      ],
                      "default": "donor-decide"
                    },
                    "fund_selection_type": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "fixed",
                        "donor-decide"
                      ],
                      "default": "fixed"
                    },
                    "default_fund": {
                      "type": "string",
                      "nullable": true
                    },
                    "fund_choices": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "string"
                      }
                    },
                    "donation_count": {
                      "type": "number",
                      "nullable": true
                    },
                    "number_of_contributions": {
                      "type": "number",
                      "nullable": true
                    },
                    "number_of_contributors": {
                      "type": "number",
                      "nullable": true
                    },
                    "fund_raised": {
                      "type": "number",
                      "nullable": true
                    },
                    "is_interactive": {
                      "type": "boolean",
                      "default": false
                    },
                    "is_launched": {
                      "type": "boolean",
                      "default": false
                    },
                    "last_decline_reason": {
                      "type": "string",
                      "nullable": true
                    },
                    "preview_url": {
                      "type": "string",
                      "nullable": true
                    },
                    "number_of_individual_contributions": {
                      "type": "number",
                      "default": 0
                    },
                    "uncharged_pledge_count": {
                      "type": "number",
                      "default": 0
                    },
                    "is_backed": {
                      "type": "boolean",
                      "default": false
                    },
                    "is_paused": {
                      "type": "boolean",
                      "default": false
                    },
                    "is_hidden": {
                      "type": "boolean",
                      "default": false
                    },
                    "is_ended": {
                      "type": "boolean",
                      "default": false
                    }
                  },
                  "required": [
                    "id",
                    "title"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/campaigns/bulk-actions": {
      "patch": {
        "tags": [
          "Campaigns"
        ],
        "summary": "Apply bulk actions to campaigns",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "action": {
                    "type": "string",
                    "enum": [
                      "delete",
                      "activate",
                      "deactivate"
                    ]
                  }
                },
                "required": [
                  "ids",
                  "action"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Applied bulk action on campaigns by ids",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "boolean",
                      "default": true
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/campaigns/{campaign_id}/post-update": {
      "post": {
        "tags": [
          "Campaigns"
        ],
        "summary": "Create a new campaign post update",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "campaign_id",
            "in": "path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "default": ""
                  },
                  "image": {
                    "type": "object",
                    "nullable": true,
                    "properties": {
                      "id": {
                        "type": "string",
                        "nullable": true
                      },
                      "filename": {
                        "type": "string",
                        "nullable": true
                      },
                      "url": {
                        "type": "string"
                      },
                      "sizes": {
                        "anyOf": [
                          {
                            "type": "object",
                            "additionalProperties": {
                              "type": "object",
                              "properties": {
                                "height": {
                                  "type": "number",
                                  "nullable": true
                                },
                                "width": {
                                  "type": "number",
                                  "nullable": true
                                },
                                "url": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "orientation": {
                                  "type": "string",
                                  "nullable": true
                                }
                              }
                            }
                          },
                          {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "nullable": true
                            }
                          },
                          {
                            "nullable": true
                          }
                        ]
                      },
                      "height": {
                        "type": "number",
                        "nullable": true
                      },
                      "width": {
                        "type": "number",
                        "nullable": true
                      },
                      "filesize": {
                        "type": "number",
                        "nullable": true
                      },
                      "mime": {
                        "type": "string",
                        "nullable": true
                      },
                      "type": {
                        "type": "string",
                        "nullable": true
                      },
                      "thumb": {
                        "type": "object",
                        "nullable": true,
                        "properties": {
                          "src": {
                            "type": "string"
                          },
                          "width": {
                            "type": "number"
                          },
                          "height": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "src",
                          "width",
                          "height"
                        ]
                      },
                      "author": {
                        "type": "string",
                        "nullable": true
                      },
                      "authorName": {
                        "type": "string",
                        "nullable": true
                      },
                      "date": {
                        "type": "string",
                        "nullable": true
                      }
                    },
                    "required": [
                      "url"
                    ]
                  },
                  "description": {
                    "type": "string",
                    "nullable": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Campaign post update created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id"
                      ]
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "message"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/app-config": {
      "get": {
        "tags": [
          "App Config"
        ],
        "summary": "Get the current application configurations.",
        "responses": {
          "200": {
            "description": "Obtains the current application configurations.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "growfund_general": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "country": {
                              "type": "string",
                              "nullable": true
                            },
                            "state": {
                              "type": "string",
                              "nullable": true
                            },
                            "registration_page": {
                              "type": "string",
                              "nullable": true
                            },
                            "success_page": {
                              "type": "string",
                              "nullable": true
                            },
                            "failure_page": {
                              "type": "string",
                              "nullable": true
                            },
                            "privacy_policy_page": {
                              "type": "string",
                              "nullable": true
                            },
                            "terms_and_conditions_page": {
                              "type": "string",
                              "nullable": true
                            },
                            "company_field_visibility": {
                              "type": "string",
                              "enum": [
                                "disabled",
                                "optional",
                                "required"
                              ],
                              "default": "disabled"
                            },
                            "title_prefix_visibility": {
                              "type": "string",
                              "enum": [
                                "disabled",
                                "optional",
                                "required"
                              ],
                              "default": "disabled"
                            },
                            "salutations": {
                              "type": "array",
                              "nullable": true,
                              "items": {
                                "type": "string"
                              },
                              "default": []
                            },
                            "tnc_text": {
                              "type": "string",
                              "nullable": true
                            }
                          }
                        },
                        "growfund_campaign": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "is_login_required_to_view_campaign_detail": {
                              "type": "boolean",
                              "default": false
                            },
                            "display_contributor_list_publicly": {
                              "type": "boolean",
                              "default": false
                            },
                            "campaign_update_visibility": {
                              "type": "string",
                              "enum": [
                                "public",
                                "contributors",
                                "logged-in-users"
                              ],
                              "default": "public"
                            },
                            "social_shares": {
                              "type": "array",
                              "nullable": true,
                              "items": {
                                "type": "string",
                                "enum": [
                                  "facebook",
                                  "x",
                                  "linkedin",
                                  "whatsapp",
                                  "telegram"
                                ]
                              }
                            },
                            "allow_comments": {
                              "type": "boolean",
                              "default": true
                            },
                            "comment_moderation": {
                              "type": "string",
                              "enum": [
                                "immediate",
                                "need-approval"
                              ],
                              "default": "immediate"
                            },
                            "comment_visibility": {
                              "type": "string",
                              "enum": [
                                "public",
                                "contributors",
                                "logged-in-users"
                              ],
                              "default": "public"
                            },
                            "allow_tribute": {
                              "type": "boolean",
                              "default": false
                            },
                            "allow_fund": {
                              "type": "boolean",
                              "default": false
                            }
                          }
                        },
                        "growfund_user_permissions": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "fundraisers_can_publish_campaigns": {
                              "type": "boolean",
                              "default": false
                            },
                            "fundraisers_can_delete_campaigns": {
                              "type": "boolean",
                              "default": false
                            },
                            "allow_anonymous_contributions": {
                              "type": "boolean",
                              "default": false
                            },
                            "allow_contributor_comments": {
                              "type": "boolean",
                              "default": true
                            }
                          }
                        },
                        "growfund_payment": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "payments": {
                              "type": "array",
                              "nullable": true,
                              "items": {
                                "type": "object",
                                "properties": {
                                  "type": {
                                    "type": "string",
                                    "enum": [
                                      "manual-payment",
                                      "online-payment"
                                    ]
                                  },
                                  "name": {
                                    "type": "string"
                                  },
                                  "config": {
                                    "type": "object",
                                    "properties": {
                                      "label": {
                                        "type": "string"
                                      },
                                      "logo": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "id": {
                                                "type": "string",
                                                "nullable": true
                                              },
                                              "filename": {
                                                "type": "string",
                                                "nullable": true
                                              },
                                              "url": {
                                                "type": "string"
                                              },
                                              "sizes": {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "additionalProperties": {
                                                      "type": "object",
                                                      "properties": {
                                                        "height": {
                                                          "type": "number",
                                                          "nullable": true
                                                        },
                                                        "width": {
                                                          "type": "number",
                                                          "nullable": true
                                                        },
                                                        "url": {
                                                          "type": "string",
                                                          "nullable": true
                                                        },
                                                        "orientation": {
                                                          "type": "string",
                                                          "nullable": true
                                                        }
                                                      }
                                                    }
                                                  },
                                                  {
                                                    "type": "array",
                                                    "items": {
                                                      "type": "string",
                                                      "nullable": true
                                                    }
                                                  },
                                                  {
                                                    "nullable": true
                                                  }
                                                ]
                                              },
                                              "height": {
                                                "type": "number",
                                                "nullable": true
                                              },
                                              "width": {
                                                "type": "number",
                                                "nullable": true
                                              },
                                              "filesize": {
                                                "type": "number",
                                                "nullable": true
                                              },
                                              "mime": {
                                                "type": "string",
                                                "nullable": true
                                              },
                                              "type": {
                                                "type": "string",
                                                "nullable": true
                                              },
                                              "thumb": {
                                                "type": "object",
                                                "nullable": true,
                                                "properties": {
                                                  "src": {
                                                    "type": "string"
                                                  },
                                                  "width": {
                                                    "type": "number"
                                                  },
                                                  "height": {
                                                    "type": "number"
                                                  }
                                                },
                                                "required": [
                                                  "src",
                                                  "width",
                                                  "height"
                                                ]
                                              },
                                              "author": {
                                                "type": "string",
                                                "nullable": true
                                              },
                                              "authorName": {
                                                "type": "string",
                                                "nullable": true
                                              },
                                              "date": {
                                                "type": "string",
                                                "nullable": true
                                              }
                                            },
                                            "required": [
                                              "url"
                                            ]
                                          },
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "nullable": true
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "label"
                                    ],
                                    "additionalProperties": {
                                      "nullable": true
                                    }
                                  },
                                  "is_installed": {
                                    "type": "boolean",
                                    "default": false
                                  },
                                  "is_enabled": {
                                    "type": "boolean",
                                    "default": false
                                  },
                                  "fields": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "label": {
                                          "type": "string"
                                        },
                                        "name": {
                                          "type": "string"
                                        },
                                        "placeholder": {
                                          "type": "string"
                                        },
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "text",
                                            "textarea",
                                            "select",
                                            "switch",
                                            "password",
                                            "media"
                                          ]
                                        },
                                        "options": {
                                          "type": "array",
                                          "nullable": true,
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "label": {
                                                "type": "string"
                                              },
                                              "value": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "label",
                                              "value"
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "label",
                                        "name",
                                        "placeholder",
                                        "type"
                                      ]
                                    },
                                    "default": []
                                  },
                                  "download_url": {
                                    "type": "string"
                                  },
                                  "class": {
                                    "type": "string"
                                  },
                                  "supports_future_payments": {
                                    "type": "boolean",
                                    "nullable": true
                                  },
                                  "frontend_script": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "form_file": {
                                    "type": "string",
                                    "nullable": true
                                  }
                                },
                                "required": [
                                  "type",
                                  "name",
                                  "config",
                                  "download_url",
                                  "class"
                                ]
                              }
                            },
                            "e_commerce_engine": {
                              "type": "string",
                              "enum": [
                                "native",
                                "woo-commerce"
                              ],
                              "default": "native"
                            },
                            "checkout_page": {
                              "type": "string",
                              "nullable": true
                            },
                            "payment_gateway": {
                              "type": "string",
                              "enum": [
                                "stripe",
                                "paypal"
                              ],
                              "default": "stripe"
                            },
                            "currency": {
                              "type": "string",
                              "nullable": true
                            },
                            "currency_position": {
                              "type": "string",
                              "enum": [
                                "before",
                                "after"
                              ],
                              "default": "before"
                            },
                            "decimal_separator": {
                              "type": "string",
                              "enum": [
                                ".",
                                ",",
                                " "
                              ],
                              "default": "."
                            },
                            "thousand_separator": {
                              "type": "string",
                              "enum": [
                                ".",
                                ",",
                                " "
                              ],
                              "default": ","
                            },
                            "decimal_places": {
                              "type": "number",
                              "default": 2
                            },
                            "allow_test_mode": {
                              "type": "boolean",
                              "default": false
                            },
                            "enable_platform_fee": {
                              "type": "boolean",
                              "default": false
                            },
                            "platform_fee_type": {
                              "type": "string",
                              "enum": [
                                "percent",
                                "flat"
                              ],
                              "default": "percent"
                            },
                            "platform_fee": {
                              "type": "number",
                              "nullable": true
                            },
                            "enable_guest_checkout": {
                              "type": "boolean",
                              "default": false
                            },
                            "enable_wallet": {
                              "type": "boolean",
                              "default": false
                            },
                            "put_limit_on_revenue_withdrawal": {
                              "type": "boolean",
                              "default": true
                            },
                            "minimum_balance_to_request_withdrawal": {
                              "type": "number",
                              "nullable": true
                            },
                            "revenue_withdrawal_type": {
                              "type": "string",
                              "enum": [
                                "anytime",
                                "after-certain-goal-reached",
                                "after-completion"
                              ],
                              "default": "anytime"
                            },
                            "goal_percentage": {
                              "type": "number",
                              "nullable": true
                            },
                            "enable_wallet_deposit_for_contributors": {
                              "type": "boolean",
                              "default": false
                            }
                          }
                        },
                        "growfund_pdf_receipt": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "enable_annual_receipt": {
                              "type": "boolean",
                              "default": true
                            }
                          }
                        },
                        "growfund_email_and_notifications": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "is_enabled_admin_email_password_reset_request": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_admin_email_campaign_submitted_for_review": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_admin_email_campaign_funded": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_admin_email_new_user_registration": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_admin_email_campaign_post_update": {
                              "type": "boolean",
                              "default": false
                            },
                            "is_enabled_admin_email_new_pledge": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_admin_email_new_donation": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_admin_email_contribution_charged": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_admin_email_new_offline_pledge": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_admin_email_new_offline_donation": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_admin_email_contribution_cancellation_notification": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_admin_email_campaign_ended": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_admin_email_reward_delivered": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_fundraiser_email_new_user_registration": {
                              "type": "boolean",
                              "default": false
                            },
                            "is_enabled_fundraiser_email_password_reset_request": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_fundraiser_email_campaign_approved": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_fundraiser_email_campaign_declined": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_fundraiser_email_campaign_post_update": {
                              "type": "boolean",
                              "default": false
                            },
                            "is_enabled_fundraiser_email_campaign_funded": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_fundraiser_email_new_pledge": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_fundraiser_email_new_donation": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_fundraiser_email_pledge_amount_charged": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_fundraiser_email_donation_amount_charged": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_fundraiser_email_pledge_cancelled": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_fundraiser_email_donation_cancelled": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_fundraiser_email_new_offline_pledge": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_fundraiser_email_new_offline_donation": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_fundraiser_email_reward_delivered": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_backer_email_pledge_created": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_backer_email_offline_pledge_request": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_backer_email_pledge_paid": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_backer_email_new_backer_registration": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_backer_email_campaign_post_update": {
                              "type": "boolean",
                              "default": false
                            },
                            "is_enabled_backer_email_payment_unsuccessful": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_backer_email_password_reset_request": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_backer_email_pledge_cancelled": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_backer_email_reward_delivered": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_backer_email_campaign_half_funded": {
                              "type": "boolean",
                              "default": false
                            },
                            "is_enabled_donor_email_donation_receipt": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_donor_email_donation_failed": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_donor_email_new_donor_registration": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_donor_email_offline_donation_instructions": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_donor_email_campaign_post_update": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_donor_email_campaign_half_milestone_achieved": {
                              "type": "boolean",
                              "default": false
                            },
                            "is_enabled_donor_email_tribute_mail": {
                              "type": "boolean",
                              "default": true
                            },
                            "is_enabled_donor_email_password_reset_request": {
                              "type": "boolean",
                              "default": true
                            },
                            "mail": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "from_name": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "from_email": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "mailer": {
                                      "type": "string",
                                      "enum": [
                                        "php-mail"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "mailer"
                                  ]
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "from_name": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "from_email": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "mailer": {
                                      "type": "string",
                                      "enum": [
                                        "smtp"
                                      ]
                                    },
                                    "host": {
                                      "type": "string"
                                    },
                                    "port": {
                                      "type": "string"
                                    },
                                    "encryption": {
                                      "type": "string",
                                      "enum": [
                                        "none",
                                        "ssl",
                                        "tls"
                                      ]
                                    },
                                    "enable_authentication": {
                                      "type": "boolean",
                                      "default": true
                                    },
                                    "username": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "password": {
                                      "type": "string",
                                      "nullable": true
                                    }
                                  },
                                  "required": [
                                    "mailer",
                                    "host",
                                    "port",
                                    "encryption"
                                  ]
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "from_name": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "from_email": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "mailer": {
                                      "nullable": true
                                    }
                                  },
                                  "required": [
                                    "mailer"
                                  ]
                                },
                                {
                                  "nullable": true
                                }
                              ]
                            }
                          }
                        },
                        "growfund_security": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "is_enabled_email_verification": {
                              "type": "boolean",
                              "default": true
                            },
                            "enable_recaptcha_on_user_registration": {
                              "type": "string",
                              "enum": [
                                "disabled",
                                "enabled"
                              ],
                              "default": "disabled"
                            },
                            "enable_recaptcha_on_campaign_submit": {
                              "type": "string",
                              "enum": [
                                "disabled",
                                "enabled"
                              ],
                              "default": "disabled"
                            },
                            "recaptcha_site_key": {
                              "type": "string",
                              "nullable": true
                            },
                            "recaptcha_secret_key": {
                              "type": "string",
                              "nullable": true
                            }
                          }
                        },
                        "growfund_integrations": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        },
                        "growfund_branding": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "logo": {
                              "type": "object",
                              "nullable": true,
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "filename": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "url": {
                                  "type": "string"
                                },
                                "sizes": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "additionalProperties": {
                                        "type": "object",
                                        "properties": {
                                          "height": {
                                            "type": "number",
                                            "nullable": true
                                          },
                                          "width": {
                                            "type": "number",
                                            "nullable": true
                                          },
                                          "url": {
                                            "type": "string",
                                            "nullable": true
                                          },
                                          "orientation": {
                                            "type": "string",
                                            "nullable": true
                                          }
                                        }
                                      }
                                    },
                                    {
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "nullable": true
                                      }
                                    },
                                    {
                                      "nullable": true
                                    }
                                  ]
                                },
                                "height": {
                                  "type": "number",
                                  "nullable": true
                                },
                                "width": {
                                  "type": "number",
                                  "nullable": true
                                },
                                "filesize": {
                                  "type": "number",
                                  "nullable": true
                                },
                                "mime": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "type": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "thumb": {
                                  "type": "object",
                                  "nullable": true,
                                  "properties": {
                                    "src": {
                                      "type": "string"
                                    },
                                    "width": {
                                      "type": "number"
                                    },
                                    "height": {
                                      "type": "number"
                                    }
                                  },
                                  "required": [
                                    "src",
                                    "width",
                                    "height"
                                  ]
                                },
                                "author": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "authorName": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "date": {
                                  "type": "string",
                                  "nullable": true
                                }
                              },
                              "required": [
                                "url"
                              ]
                            },
                            "text_color": {
                              "type": "string",
                              "nullable": true
                            },
                            "button_primary_color": {
                              "type": "string",
                              "nullable": true
                            },
                            "button_hover_color": {
                              "type": "string",
                              "nullable": true
                            },
                            "button_text_color": {
                              "type": "string",
                              "nullable": true
                            }
                          }
                        },
                        "growfund_advanced": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "campaign_permalink": {
                              "type": "string",
                              "default": "/campaigns"
                            },
                            "enable_cache_clearing": {
                              "type": "boolean",
                              "default": false
                            },
                            "erase_data_upon_uninstallation": {
                              "type": "boolean",
                              "default": false
                            }
                          }
                        },
                        "growfund_license": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "license_key": {
                              "type": "string",
                              "nullable": true
                            }
                          }
                        },
                        "growfund_current_user": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "id": {
                              "type": "string",
                              "nullable": true
                            },
                            "email": {
                              "type": "string"
                            },
                            "display_name": {
                              "type": "string"
                            },
                            "first_name": {
                              "type": "string"
                            },
                            "last_name": {
                              "type": "string"
                            },
                            "image": {
                              "type": "object",
                              "nullable": true,
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "filename": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "url": {
                                  "type": "string"
                                },
                                "sizes": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "additionalProperties": {
                                        "type": "object",
                                        "properties": {
                                          "height": {
                                            "type": "number",
                                            "nullable": true
                                          },
                                          "width": {
                                            "type": "number",
                                            "nullable": true
                                          },
                                          "url": {
                                            "type": "string",
                                            "nullable": true
                                          },
                                          "orientation": {
                                            "type": "string",
                                            "nullable": true
                                          }
                                        }
                                      }
                                    },
                                    {
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "nullable": true
                                      }
                                    },
                                    {
                                      "nullable": true
                                    }
                                  ]
                                },
                                "height": {
                                  "type": "number",
                                  "nullable": true
                                },
                                "width": {
                                  "type": "number",
                                  "nullable": true
                                },
                                "filesize": {
                                  "type": "number",
                                  "nullable": true
                                },
                                "mime": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "type": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "thumb": {
                                  "type": "object",
                                  "nullable": true,
                                  "properties": {
                                    "src": {
                                      "type": "string"
                                    },
                                    "width": {
                                      "type": "number"
                                    },
                                    "height": {
                                      "type": "number"
                                    }
                                  },
                                  "required": [
                                    "src",
                                    "width",
                                    "height"
                                  ]
                                },
                                "author": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "authorName": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "date": {
                                  "type": "string",
                                  "nullable": true
                                }
                              },
                              "required": [
                                "url"
                              ]
                            },
                            "phone": {
                              "type": "string",
                              "nullable": true
                            },
                            "active_role": {
                              "type": "string",
                              "nullable": true,
                              "enum": [
                                "growfund_admin",
                                "growfund_fundraiser",
                                "growfund_donor",
                                "growfund_backer"
                              ]
                            },
                            "shipping_address": {
                              "type": "object",
                              "nullable": true,
                              "properties": {
                                "address": {
                                  "type": "string"
                                },
                                "address_2": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "city": {
                                  "type": "string"
                                },
                                "state": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "zip_code": {
                                  "type": "string"
                                },
                                "country": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "address",
                                "city",
                                "zip_code",
                                "country"
                              ]
                            },
                            "billing_address": {
                              "type": "object",
                              "nullable": true,
                              "properties": {
                                "address": {
                                  "type": "string"
                                },
                                "address_2": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "city": {
                                  "type": "string"
                                },
                                "state": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "zip_code": {
                                  "type": "string"
                                },
                                "country": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "address",
                                "city",
                                "zip_code",
                                "country"
                              ]
                            },
                            "is_soft_deleted": {
                              "type": "boolean",
                              "nullable": true,
                              "default": false
                            },
                            "is_billing_address_same": {
                              "type": "boolean",
                              "nullable": true,
                              "default": false
                            },
                            "notification_settings": {
                              "type": "object",
                              "nullable": true,
                              "properties": {
                                "is_enabled_backer_email_campaign_post_update": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "is_enabled_backer_email_campaign_half_funded": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "is_enabled_backer_email_reward_delivered": {
                                  "type": "boolean",
                                  "default": true
                                },
                                "is_enabled_donor_email_campaign_half_milestone_achieved": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "is_enabled_donor_email_tribute_mail": {
                                  "type": "boolean",
                                  "default": true
                                },
                                "is_enabled_donor_email_campaign_post_update": {
                                  "type": "boolean",
                                  "default": true
                                },
                                "is_enabled_fundraiser_email_campaign_declined": {
                                  "type": "boolean",
                                  "default": true
                                },
                                "is_enabled_fundraiser_email_campaign_approved": {
                                  "type": "boolean",
                                  "default": true
                                },
                                "is_enabled_fundraiser_email_campaign_funded": {
                                  "type": "boolean",
                                  "default": true
                                },
                                "is_enabled_fundraiser_email_pledge_cancelled": {
                                  "type": "boolean",
                                  "default": true
                                },
                                "is_enabled_fundraiser_email_new_pledge": {
                                  "type": "boolean",
                                  "default": true
                                },
                                "is_enabled_fundraiser_email_new_donation": {
                                  "type": "boolean",
                                  "default": true
                                },
                                "is_enabled_fundraiser_email_reward_delivered": {
                                  "type": "boolean",
                                  "default": true
                                },
                                "is_enabled_fundraiser_email_campaign_post_update": {
                                  "type": "boolean",
                                  "default": false
                                }
                              }
                            },
                            "joined_at": {
                              "type": "string",
                              "nullable": true
                            },
                            "last_contribution_at": {
                              "type": "string",
                              "nullable": true
                            },
                            "total_number_of_contributions": {
                              "type": "number",
                              "default": 0
                            }
                          },
                          "required": [
                            "email",
                            "display_name",
                            "first_name",
                            "last_name",
                            "joined_at"
                          ]
                        },
                        "growfund_is_donation_mode": {
                          "type": "string",
                          "enum": [
                            "0",
                            "1"
                          ]
                        }
                      },
                      "required": [
                        "growfund_is_donation_mode"
                      ]
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "App Config"
        ],
        "summary": "Update the current application configurations.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "value": {
                    "nullable": true
                  }
                },
                "required": [
                  "key"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Application configurations updated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "nullable": true,
                        "properties": {}
                      }
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/options": {
      "get": {
        "tags": [
          "Options"
        ],
        "summary": "Get specific option by key.",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "key",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Obtains the option value by key.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "nullable": true
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Options"
        ],
        "summary": "Update specific option by key.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "value": {
                    "nullable": true
                  }
                },
                "required": [
                  "key"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Option updated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "nullable": true
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/wp-pages": {
      "get": {
        "tags": [
          "WP Pages"
        ],
        "summary": "List of all wp pages.",
        "responses": {
          "200": {
            "description": "Obtains the option value by key.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "parent_id": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "parent_id"
                        ]
                      }
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/upload-media": {
      "post": {
        "tags": [
          "Media"
        ],
        "summary": "Upload media files.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "media": {
                    "type": "array",
                    "items": {}
                  }
                },
                "required": [
                  "media"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Media files are uploaded successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "media": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "nullable": true
                              },
                              "filename": {
                                "type": "string",
                                "nullable": true
                              },
                              "url": {
                                "type": "string"
                              },
                              "sizes": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": {
                                      "type": "object",
                                      "properties": {
                                        "height": {
                                          "type": "number",
                                          "nullable": true
                                        },
                                        "width": {
                                          "type": "number",
                                          "nullable": true
                                        },
                                        "url": {
                                          "type": "string",
                                          "nullable": true
                                        },
                                        "orientation": {
                                          "type": "string",
                                          "nullable": true
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "nullable": true
                                    }
                                  },
                                  {
                                    "nullable": true
                                  }
                                ]
                              },
                              "height": {
                                "type": "number",
                                "nullable": true
                              },
                              "width": {
                                "type": "number",
                                "nullable": true
                              },
                              "filesize": {
                                "type": "number",
                                "nullable": true
                              },
                              "mime": {
                                "type": "string",
                                "nullable": true
                              },
                              "type": {
                                "type": "string",
                                "nullable": true
                              },
                              "thumb": {
                                "type": "object",
                                "nullable": true,
                                "properties": {
                                  "src": {
                                    "type": "string"
                                  },
                                  "width": {
                                    "type": "number"
                                  },
                                  "height": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "src",
                                  "width",
                                  "height"
                                ]
                              },
                              "author": {
                                "type": "string",
                                "nullable": true
                              },
                              "authorName": {
                                "type": "string",
                                "nullable": true
                              },
                              "date": {
                                "type": "string",
                                "nullable": true
                              }
                            },
                            "required": [
                              "url"
                            ]
                          }
                        }
                      },
                      "required": [
                        "media"
                      ]
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "errors"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/validate-email": {
      "post": {
        "tags": [
          "Email Validation"
        ],
        "summary": "Validate the provided email.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "email": {
                    "type": "string",
                    "format": "email"
                  }
                },
                "required": [
                  "email"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Email is available .",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "boolean"
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Email is already in use.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "errors"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/categories": {
      "get": {
        "tags": [
          "Categories"
        ],
        "summary": "Get all categories",
        "responses": {
          "200": {
            "description": "List of all categories",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "slug": {
                            "type": "string",
                            "nullable": true
                          },
                          "image": {
                            "type": "object",
                            "nullable": true,
                            "properties": {
                              "id": {
                                "type": "string",
                                "nullable": true
                              },
                              "filename": {
                                "type": "string",
                                "nullable": true
                              },
                              "url": {
                                "type": "string"
                              },
                              "sizes": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": {
                                      "type": "object",
                                      "properties": {
                                        "height": {
                                          "type": "number",
                                          "nullable": true
                                        },
                                        "width": {
                                          "type": "number",
                                          "nullable": true
                                        },
                                        "url": {
                                          "type": "string",
                                          "nullable": true
                                        },
                                        "orientation": {
                                          "type": "string",
                                          "nullable": true
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "nullable": true
                                    }
                                  },
                                  {
                                    "nullable": true
                                  }
                                ]
                              },
                              "height": {
                                "type": "number",
                                "nullable": true
                              },
                              "width": {
                                "type": "number",
                                "nullable": true
                              },
                              "filesize": {
                                "type": "number",
                                "nullable": true
                              },
                              "mime": {
                                "type": "string",
                                "nullable": true
                              },
                              "type": {
                                "type": "string",
                                "nullable": true
                              },
                              "thumb": {
                                "type": "object",
                                "nullable": true,
                                "properties": {
                                  "src": {
                                    "type": "string"
                                  },
                                  "width": {
                                    "type": "number"
                                  },
                                  "height": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "src",
                                  "width",
                                  "height"
                                ]
                              },
                              "author": {
                                "type": "string",
                                "nullable": true
                              },
                              "authorName": {
                                "type": "string",
                                "nullable": true
                              },
                              "date": {
                                "type": "string",
                                "nullable": true
                              }
                            },
                            "required": [
                              "url"
                            ]
                          },
                          "description": {
                            "type": "string",
                            "nullable": true
                          },
                          "parent_id": {
                            "type": "string",
                            "nullable": true
                          },
                          "level": {
                            "type": "number"
                          },
                          "count": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "level",
                          "count"
                        ]
                      }
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Categories"
        ],
        "summary": "Create a new category",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "slug": {
                    "type": "string",
                    "nullable": true
                  },
                  "image": {
                    "type": "string",
                    "nullable": true
                  },
                  "description": {
                    "type": "string",
                    "nullable": true
                  },
                  "parent_id": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Category created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id"
                      ]
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/categories/{id}": {
      "put": {
        "tags": [
          "Categories"
        ],
        "summary": "Update a category by ID",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "id",
            "in": "path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "slug": {
                    "type": "string",
                    "nullable": true
                  },
                  "image": {
                    "type": "string",
                    "nullable": true
                  },
                  "description": {
                    "type": "string",
                    "nullable": true
                  },
                  "parent_id": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Campaign updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "boolean",
                      "default": true
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Categories"
        ],
        "summary": "Delete a category by ID",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Category deleted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "boolean",
                      "default": true
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Category not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/categories/top-level": {
      "get": {
        "tags": [
          "Categories"
        ],
        "summary": "Get all top level categories",
        "responses": {
          "200": {
            "description": "List of all top level categories",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "slug": {
                            "type": "string",
                            "nullable": true
                          },
                          "image": {
                            "type": "object",
                            "nullable": true,
                            "properties": {
                              "id": {
                                "type": "string",
                                "nullable": true
                              },
                              "filename": {
                                "type": "string",
                                "nullable": true
                              },
                              "url": {
                                "type": "string"
                              },
                              "sizes": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": {
                                      "type": "object",
                                      "properties": {
                                        "height": {
                                          "type": "number",
                                          "nullable": true
                                        },
                                        "width": {
                                          "type": "number",
                                          "nullable": true
                                        },
                                        "url": {
                                          "type": "string",
                                          "nullable": true
                                        },
                                        "orientation": {
                                          "type": "string",
                                          "nullable": true
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "nullable": true
                                    }
                                  },
                                  {
                                    "nullable": true
                                  }
                                ]
                              },
                              "height": {
                                "type": "number",
                                "nullable": true
                              },
                              "width": {
                                "type": "number",
                                "nullable": true
                              },
                              "filesize": {
                                "type": "number",
                                "nullable": true
                              },
                              "mime": {
                                "type": "string",
                                "nullable": true
                              },
                              "type": {
                                "type": "string",
                                "nullable": true
                              },
                              "thumb": {
                                "type": "object",
                                "nullable": true,
                                "properties": {
                                  "src": {
                                    "type": "string"
                                  },
                                  "width": {
                                    "type": "number"
                                  },
                                  "height": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "src",
                                  "width",
                                  "height"
                                ]
                              },
                              "author": {
                                "type": "string",
                                "nullable": true
                              },
                              "authorName": {
                                "type": "string",
                                "nullable": true
                              },
                              "date": {
                                "type": "string",
                                "nullable": true
                              }
                            },
                            "required": [
                              "url"
                            ]
                          },
                          "description": {
                            "type": "string",
                            "nullable": true
                          },
                          "parent_id": {
                            "type": "string",
                            "nullable": true
                          },
                          "level": {
                            "type": "number"
                          },
                          "count": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "level",
                          "count"
                        ]
                      }
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/categories/{parent_id}/subcategories": {
      "get": {
        "tags": [
          "Categories"
        ],
        "summary": "Get all sub categories",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "parent_id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "List of all sub categories",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "slug": {
                            "type": "string",
                            "nullable": true
                          },
                          "image": {
                            "type": "object",
                            "nullable": true,
                            "properties": {
                              "id": {
                                "type": "string",
                                "nullable": true
                              },
                              "filename": {
                                "type": "string",
                                "nullable": true
                              },
                              "url": {
                                "type": "string"
                              },
                              "sizes": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": {
                                      "type": "object",
                                      "properties": {
                                        "height": {
                                          "type": "number",
                                          "nullable": true
                                        },
                                        "width": {
                                          "type": "number",
                                          "nullable": true
                                        },
                                        "url": {
                                          "type": "string",
                                          "nullable": true
                                        },
                                        "orientation": {
                                          "type": "string",
                                          "nullable": true
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "nullable": true
                                    }
                                  },
                                  {
                                    "nullable": true
                                  }
                                ]
                              },
                              "height": {
                                "type": "number",
                                "nullable": true
                              },
                              "width": {
                                "type": "number",
                                "nullable": true
                              },
                              "filesize": {
                                "type": "number",
                                "nullable": true
                              },
                              "mime": {
                                "type": "string",
                                "nullable": true
                              },
                              "type": {
                                "type": "string",
                                "nullable": true
                              },
                              "thumb": {
                                "type": "object",
                                "nullable": true,
                                "properties": {
                                  "src": {
                                    "type": "string"
                                  },
                                  "width": {
                                    "type": "number"
                                  },
                                  "height": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "src",
                                  "width",
                                  "height"
                                ]
                              },
                              "author": {
                                "type": "string",
                                "nullable": true
                              },
                              "authorName": {
                                "type": "string",
                                "nullable": true
                              },
                              "date": {
                                "type": "string",
                                "nullable": true
                              }
                            },
                            "required": [
                              "url"
                            ]
                          },
                          "description": {
                            "type": "string",
                            "nullable": true
                          },
                          "parent_id": {
                            "type": "string",
                            "nullable": true
                          },
                          "level": {
                            "type": "number"
                          },
                          "count": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "level",
                          "count"
                        ]
                      }
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/categories/bulk-actions": {
      "patch": {
        "tags": [
          "Categories"
        ],
        "summary": "Bulk actions for categories",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "delete"
                    ]
                  },
                  "ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "action",
                  "ids"
                ]
              }
            }
          }
        },
        "responses": {
          "207": {
            "description": "Bulk actions for categories",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "boolean",
                      "default": true
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/tags": {
      "get": {
        "tags": [
          "Tags"
        ],
        "summary": "Get all tags",
        "responses": {
          "200": {
            "description": "List of all tags",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "slug": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string",
                            "nullable": true
                          },
                          "count": {
                            "type": "number",
                            "nullable": true
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "slug"
                        ]
                      }
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Tags"
        ],
        "summary": "Create a new tag",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string",
                    "nullable": true
                  },
                  "slug": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Tag created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id"
                      ]
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/tags/{id}": {
      "put": {
        "tags": [
          "Tags"
        ],
        "summary": "Update a tag by ID",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "id",
            "in": "path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string",
                    "nullable": true
                  },
                  "slug": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Campaign updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "boolean",
                      "default": true
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Tags"
        ],
        "summary": "Delete a tag by ID",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Tag deleted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "boolean",
                      "default": true
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Tag not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/tags/bulk-actions": {
      "patch": {
        "tags": [
          "Tags"
        ],
        "summary": "Bulk actions for tags",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "delete"
                    ]
                  },
                  "ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "action",
                  "ids"
                ]
              }
            }
          }
        },
        "responses": {
          "207": {
            "description": "Bulk actions for tags",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "boolean",
                      "default": true
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/campaigns/{campaign_id}/rewards": {
      "get": {
        "tags": [
          "Rewards"
        ],
        "summary": "Get all rewards for a campaign",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "campaign_id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "List of all rewards for a campaign",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "title": {
                            "type": "string"
                          },
                          "amount": {
                            "type": "number"
                          },
                          "description": {
                            "type": "string",
                            "nullable": true
                          },
                          "image": {
                            "type": "object",
                            "nullable": true,
                            "properties": {
                              "id": {
                                "type": "string",
                                "nullable": true
                              },
                              "filename": {
                                "type": "string",
                                "nullable": true
                              },
                              "url": {
                                "type": "string"
                              },
                              "sizes": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": {
                                      "type": "object",
                                      "properties": {
                                        "height": {
                                          "type": "number",
                                          "nullable": true
                                        },
                                        "width": {
                                          "type": "number",
                                          "nullable": true
                                        },
                                        "url": {
                                          "type": "string",
                                          "nullable": true
                                        },
                                        "orientation": {
                                          "type": "string",
                                          "nullable": true
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "nullable": true
                                    }
                                  },
                                  {
                                    "nullable": true
                                  }
                                ]
                              },
                              "height": {
                                "type": "number",
                                "nullable": true
                              },
                              "width": {
                                "type": "number",
                                "nullable": true
                              },
                              "filesize": {
                                "type": "number",
                                "nullable": true
                              },
                              "mime": {
                                "type": "string",
                                "nullable": true
                              },
                              "type": {
                                "type": "string",
                                "nullable": true
                              },
                              "thumb": {
                                "type": "object",
                                "nullable": true,
                                "properties": {
                                  "src": {
                                    "type": "string"
                                  },
                                  "width": {
                                    "type": "number"
                                  },
                                  "height": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "src",
                                  "width",
                                  "height"
                                ]
                              },
                              "author": {
                                "type": "string",
                                "nullable": true
                              },
                              "authorName": {
                                "type": "string",
                                "nullable": true
                              },
                              "date": {
                                "type": "string",
                                "nullable": true
                              }
                            },
                            "required": [
                              "url"
                            ]
                          },
                          "quantity_type": {
                            "type": "string",
                            "enum": [
                              "unlimited",
                              "limited"
                            ],
                            "default": "unlimited"
                          },
                          "quantity_limit": {
                            "type": "number",
                            "nullable": true
                          },
                          "time_limit_type": {
                            "type": "string",
                            "enum": [
                              "no-limit",
                              "specific-date"
                            ],
                            "default": "specific-date"
                          },
                          "limit_start_date": {
                            "type": "string",
                            "nullable": true
                          },
                          "limit_end_date": {
                            "type": "string",
                            "nullable": true
                          },
                          "reward_type": {
                            "type": "string",
                            "enum": [
                              "physical-goods",
                              "digital-goods",
                              "physical-and-digital-goods"
                            ],
                            "default": "physical-goods"
                          },
                          "estimated_delivery_date": {
                            "type": "string",
                            "nullable": true
                          },
                          "shipping_costs": {
                            "type": "array",
                            "nullable": true,
                            "items": {
                              "type": "object",
                              "properties": {
                                "location": {
                                  "type": "string"
                                },
                                "cost": {
                                  "type": "number"
                                }
                              },
                              "required": [
                                "location",
                                "cost"
                              ]
                            }
                          },
                          "allow_local_pickup": {
                            "type": "boolean",
                            "default": false
                          },
                          "local_pickup_instructions": {
                            "type": "string",
                            "nullable": true
                          },
                          "id": {
                            "type": "string"
                          },
                          "reward_left": {
                            "type": "number",
                            "nullable": true
                          },
                          "number_of_contributors": {
                            "type": "number",
                            "nullable": true
                          },
                          "created_at": {
                            "type": "string",
                            "nullable": true
                          },
                          "items": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "title": {
                                  "type": "string"
                                },
                                "quantity": {
                                  "type": "number",
                                  "nullable": true
                                },
                                "image": {
                                  "type": "object",
                                  "nullable": true,
                                  "properties": {
                                    "id": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "filename": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "url": {
                                      "type": "string"
                                    },
                                    "sizes": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "additionalProperties": {
                                            "type": "object",
                                            "properties": {
                                              "height": {
                                                "type": "number",
                                                "nullable": true
                                              },
                                              "width": {
                                                "type": "number",
                                                "nullable": true
                                              },
                                              "url": {
                                                "type": "string",
                                                "nullable": true
                                              },
                                              "orientation": {
                                                "type": "string",
                                                "nullable": true
                                              }
                                            }
                                          }
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "nullable": true
                                          }
                                        },
                                        {
                                          "nullable": true
                                        }
                                      ]
                                    },
                                    "height": {
                                      "type": "number",
                                      "nullable": true
                                    },
                                    "width": {
                                      "type": "number",
                                      "nullable": true
                                    },
                                    "filesize": {
                                      "type": "number",
                                      "nullable": true
                                    },
                                    "mime": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "type": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "thumb": {
                                      "type": "object",
                                      "nullable": true,
                                      "properties": {
                                        "src": {
                                          "type": "string"
                                        },
                                        "width": {
                                          "type": "number"
                                        },
                                        "height": {
                                          "type": "number"
                                        }
                                      },
                                      "required": [
                                        "src",
                                        "width",
                                        "height"
                                      ]
                                    },
                                    "author": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "authorName": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "date": {
                                      "type": "string",
                                      "nullable": true
                                    }
                                  },
                                  "required": [
                                    "url"
                                  ]
                                },
                                "created_at": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "id",
                                "title",
                                "created_at"
                              ]
                            }
                          }
                        },
                        "required": [
                          "title",
                          "amount",
                          "id",
                          "items"
                        ]
                      }
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Rewards"
        ],
        "summary": "Create a new reward",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "campaign_id",
            "in": "path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "number"
                  },
                  "description": {
                    "type": "string",
                    "nullable": true
                  },
                  "image": {
                    "type": "string"
                  },
                  "quantity_type": {
                    "type": "string",
                    "enum": [
                      "unlimited",
                      "limited"
                    ],
                    "default": "unlimited"
                  },
                  "quantity_limit": {
                    "type": "number",
                    "nullable": true
                  },
                  "time_limit_type": {
                    "type": "string",
                    "enum": [
                      "no-limit",
                      "specific-date"
                    ],
                    "default": "specific-date"
                  },
                  "limit_start_date": {
                    "type": "string",
                    "nullable": true
                  },
                  "limit_end_date": {
                    "type": "string",
                    "nullable": true
                  },
                  "reward_type": {
                    "type": "string",
                    "enum": [
                      "physical-goods",
                      "digital-goods",
                      "physical-and-digital-goods"
                    ],
                    "default": "physical-goods"
                  },
                  "estimated_delivery_date": {
                    "type": "string",
                    "nullable": true
                  },
                  "shipping_costs": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "object",
                      "properties": {
                        "location": {
                          "type": "string"
                        },
                        "cost": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "location",
                        "cost"
                      ]
                    }
                  },
                  "allow_local_pickup": {
                    "type": "boolean",
                    "default": false
                  },
                  "local_pickup_instructions": {
                    "type": "string",
                    "nullable": true
                  },
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "quantity": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "id",
                        "quantity"
                      ]
                    },
                    "default": []
                  }
                },
                "required": [
                  "title",
                  "amount",
                  "image"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Reward created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id"
                      ]
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/campaigns/{campaign_id}/rewards/{reward_id}": {
      "put": {
        "tags": [
          "Rewards"
        ],
        "summary": "Update a reward by ID",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "campaign_id",
            "in": "path"
          },
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "reward_id",
            "in": "path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "number"
                  },
                  "description": {
                    "type": "string",
                    "nullable": true
                  },
                  "image": {
                    "type": "string"
                  },
                  "quantity_type": {
                    "type": "string",
                    "enum": [
                      "unlimited",
                      "limited"
                    ],
                    "default": "unlimited"
                  },
                  "quantity_limit": {
                    "type": "number",
                    "nullable": true
                  },
                  "time_limit_type": {
                    "type": "string",
                    "enum": [
                      "no-limit",
                      "specific-date"
                    ],
                    "default": "specific-date"
                  },
                  "limit_start_date": {
                    "type": "string",
                    "nullable": true
                  },
                  "limit_end_date": {
                    "type": "string",
                    "nullable": true
                  },
                  "reward_type": {
                    "type": "string",
                    "enum": [
                      "physical-goods",
                      "digital-goods",
                      "physical-and-digital-goods"
                    ],
                    "default": "physical-goods"
                  },
                  "estimated_delivery_date": {
                    "type": "string",
                    "nullable": true
                  },
                  "shipping_costs": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "object",
                      "properties": {
                        "location": {
                          "type": "string"
                        },
                        "cost": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "location",
                        "cost"
                      ]
                    }
                  },
                  "allow_local_pickup": {
                    "type": "boolean",
                    "default": false
                  },
                  "local_pickup_instructions": {
                    "type": "string",
                    "nullable": true
                  },
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "quantity": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "id",
                        "quantity"
                      ]
                    },
                    "default": []
                  }
                },
                "required": [
                  "title",
                  "amount",
                  "image"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Reward updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "boolean",
                      "default": true
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Rewards"
        ],
        "summary": "Delete a reward by ID",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "campaign_id",
            "in": "path"
          },
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "reward_id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Reward deleted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "boolean",
                      "default": true
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Reward not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/campaigns/{campaign_id}/reward-items": {
      "get": {
        "tags": [
          "Reward Items"
        ],
        "summary": "Get all reward items for a campaign",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "campaign_id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "List of all reward items for a campaign",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "title": {
                            "type": "string"
                          },
                          "amount": {
                            "type": "number"
                          },
                          "description": {
                            "type": "string",
                            "nullable": true
                          },
                          "image": {
                            "type": "object",
                            "nullable": true,
                            "properties": {
                              "id": {
                                "type": "string",
                                "nullable": true
                              },
                              "filename": {
                                "type": "string",
                                "nullable": true
                              },
                              "url": {
                                "type": "string"
                              },
                              "sizes": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": {
                                      "type": "object",
                                      "properties": {
                                        "height": {
                                          "type": "number",
                                          "nullable": true
                                        },
                                        "width": {
                                          "type": "number",
                                          "nullable": true
                                        },
                                        "url": {
                                          "type": "string",
                                          "nullable": true
                                        },
                                        "orientation": {
                                          "type": "string",
                                          "nullable": true
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "nullable": true
                                    }
                                  },
                                  {
                                    "nullable": true
                                  }
                                ]
                              },
                              "height": {
                                "type": "number",
                                "nullable": true
                              },
                              "width": {
                                "type": "number",
                                "nullable": true
                              },
                              "filesize": {
                                "type": "number",
                                "nullable": true
                              },
                              "mime": {
                                "type": "string",
                                "nullable": true
                              },
                              "type": {
                                "type": "string",
                                "nullable": true
                              },
                              "thumb": {
                                "type": "object",
                                "nullable": true,
                                "properties": {
                                  "src": {
                                    "type": "string"
                                  },
                                  "width": {
                                    "type": "number"
                                  },
                                  "height": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "src",
                                  "width",
                                  "height"
                                ]
                              },
                              "author": {
                                "type": "string",
                                "nullable": true
                              },
                              "authorName": {
                                "type": "string",
                                "nullable": true
                              },
                              "date": {
                                "type": "string",
                                "nullable": true
                              }
                            },
                            "required": [
                              "url"
                            ]
                          },
                          "quantity_type": {
                            "type": "string",
                            "enum": [
                              "unlimited",
                              "limited"
                            ],
                            "default": "unlimited"
                          },
                          "quantity_limit": {
                            "type": "number",
                            "nullable": true
                          },
                          "time_limit_type": {
                            "type": "string",
                            "enum": [
                              "no-limit",
                              "specific-date"
                            ],
                            "default": "specific-date"
                          },
                          "limit_start_date": {
                            "type": "string",
                            "nullable": true
                          },
                          "limit_end_date": {
                            "type": "string",
                            "nullable": true
                          },
                          "reward_type": {
                            "type": "string",
                            "enum": [
                              "physical-goods",
                              "digital-goods",
                              "physical-and-digital-goods"
                            ],
                            "default": "physical-goods"
                          },
                          "estimated_delivery_date": {
                            "type": "string",
                            "nullable": true
                          },
                          "shipping_costs": {
                            "type": "array",
                            "nullable": true,
                            "items": {
                              "type": "object",
                              "properties": {
                                "location": {
                                  "type": "string"
                                },
                                "cost": {
                                  "type": "number"
                                }
                              },
                              "required": [
                                "location",
                                "cost"
                              ]
                            }
                          },
                          "allow_local_pickup": {
                            "type": "boolean",
                            "default": false
                          },
                          "local_pickup_instructions": {
                            "type": "string",
                            "nullable": true
                          },
                          "id": {
                            "type": "string"
                          },
                          "reward_left": {
                            "type": "number",
                            "nullable": true
                          },
                          "number_of_contributors": {
                            "type": "number",
                            "nullable": true
                          },
                          "created_at": {
                            "type": "string",
                            "nullable": true
                          },
                          "items": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "title": {
                                  "type": "string"
                                },
                                "quantity": {
                                  "type": "number",
                                  "nullable": true
                                },
                                "image": {
                                  "type": "object",
                                  "nullable": true,
                                  "properties": {
                                    "id": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "filename": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "url": {
                                      "type": "string"
                                    },
                                    "sizes": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "additionalProperties": {
                                            "type": "object",
                                            "properties": {
                                              "height": {
                                                "type": "number",
                                                "nullable": true
                                              },
                                              "width": {
                                                "type": "number",
                                                "nullable": true
                                              },
                                              "url": {
                                                "type": "string",
                                                "nullable": true
                                              },
                                              "orientation": {
                                                "type": "string",
                                                "nullable": true
                                              }
                                            }
                                          }
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "nullable": true
                                          }
                                        },
                                        {
                                          "nullable": true
                                        }
                                      ]
                                    },
                                    "height": {
                                      "type": "number",
                                      "nullable": true
                                    },
                                    "width": {
                                      "type": "number",
                                      "nullable": true
                                    },
                                    "filesize": {
                                      "type": "number",
                                      "nullable": true
                                    },
                                    "mime": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "type": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "thumb": {
                                      "type": "object",
                                      "nullable": true,
                                      "properties": {
                                        "src": {
                                          "type": "string"
                                        },
                                        "width": {
                                          "type": "number"
                                        },
                                        "height": {
                                          "type": "number"
                                        }
                                      },
                                      "required": [
                                        "src",
                                        "width",
                                        "height"
                                      ]
                                    },
                                    "author": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "authorName": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "date": {
                                      "type": "string",
                                      "nullable": true
                                    }
                                  },
                                  "required": [
                                    "url"
                                  ]
                                },
                                "created_at": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "id",
                                "title",
                                "created_at"
                              ]
                            }
                          }
                        },
                        "required": [
                          "title",
                          "amount",
                          "id",
                          "items"
                        ]
                      }
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Reward Items"
        ],
        "summary": "Create a new reward item for a campaign",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "campaign_id",
            "in": "path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string"
                  },
                  "quantity": {
                    "type": "number",
                    "nullable": true
                  },
                  "image": {
                    "type": "string"
                  }
                },
                "required": [
                  "title",
                  "image"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Reward item created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id"
                      ]
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/campaigns/{campaign_id}/reward-items/{id}": {
      "put": {
        "tags": [
          "Reward Items"
        ],
        "summary": "Update a reward item by ID",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "campaign_id",
            "in": "path"
          },
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "id",
            "in": "path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string"
                  },
                  "quantity": {
                    "type": "number",
                    "nullable": true
                  },
                  "image": {
                    "type": "string"
                  }
                },
                "required": [
                  "title",
                  "image"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Reward item updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "boolean",
                      "default": true
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Reward Items"
        ],
        "summary": "Delete a reward item by ID",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "campaign_id",
            "in": "path"
          },
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Reward item deleted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "boolean",
                      "default": true
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Reward item not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/backers": {
      "get": {
        "tags": [
          "Backers"
        ],
        "summary": "Get paginated list of backers",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "nullable": true
            },
            "required": false,
            "name": "search",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "nullable": true
            },
            "required": false,
            "name": "date_from",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "nullable": true
            },
            "required": false,
            "name": "date_to",
            "in": "query"
          },
          {
            "schema": {
              "type": "number",
              "default": 1
            },
            "required": false,
            "name": "page",
            "in": "query"
          },
          {
            "schema": {
              "type": "number",
              "default": 10
            },
            "required": false,
            "name": "limit",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "default": "DESC"
            },
            "required": false,
            "name": "orderBy",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "default": "ID"
            },
            "required": false,
            "name": "order",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "nullable": true
            },
            "required": false,
            "name": "campaign_id",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated list of backers",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "results": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "first_name": {
                                "type": "string"
                              },
                              "last_name": {
                                "type": "string"
                              },
                              "email": {
                                "type": "string",
                                "format": "email"
                              },
                              "created_at": {
                                "type": "string",
                                "nullable": true
                              },
                              "phone": {
                                "type": "string"
                              },
                              "image": {
                                "type": "object",
                                "nullable": true,
                                "properties": {
                                  "id": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "filename": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "url": {
                                    "type": "string"
                                  },
                                  "sizes": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "additionalProperties": {
                                          "type": "object",
                                          "properties": {
                                            "height": {
                                              "type": "number",
                                              "nullable": true
                                            },
                                            "width": {
                                              "type": "number",
                                              "nullable": true
                                            },
                                            "url": {
                                              "type": "string",
                                              "nullable": true
                                            },
                                            "orientation": {
                                              "type": "string",
                                              "nullable": true
                                            }
                                          }
                                        }
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "nullable": true
                                        }
                                      },
                                      {
                                        "nullable": true
                                      }
                                    ]
                                  },
                                  "height": {
                                    "type": "number",
                                    "nullable": true
                                  },
                                  "width": {
                                    "type": "number",
                                    "nullable": true
                                  },
                                  "filesize": {
                                    "type": "number",
                                    "nullable": true
                                  },
                                  "mime": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "type": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "thumb": {
                                    "type": "object",
                                    "nullable": true,
                                    "properties": {
                                      "src": {
                                        "type": "string"
                                      },
                                      "width": {
                                        "type": "number"
                                      },
                                      "height": {
                                        "type": "number"
                                      }
                                    },
                                    "required": [
                                      "src",
                                      "width",
                                      "height"
                                    ]
                                  },
                                  "author": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "authorName": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "date": {
                                    "type": "string",
                                    "nullable": true
                                  }
                                },
                                "required": [
                                  "url"
                                ]
                              },
                              "shipping_address": {
                                "type": "object",
                                "nullable": true,
                                "properties": {
                                  "address": {
                                    "type": "string"
                                  },
                                  "address_2": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "city": {
                                    "type": "string"
                                  },
                                  "state": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "zip_code": {
                                    "type": "string"
                                  },
                                  "country": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "address",
                                  "city",
                                  "zip_code",
                                  "country"
                                ]
                              },
                              "billing_address": {
                                "type": "object",
                                "nullable": true,
                                "properties": {
                                  "address": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "address_2": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "city": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "state": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "zip_code": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "country": {
                                    "type": "string",
                                    "nullable": true
                                  }
                                }
                              },
                              "is_billing_address_same": {
                                "type": "boolean",
                                "default": false
                              },
                              "number_of_contributions": {
                                "type": "number",
                                "default": 0
                              },
                              "total_contributions": {
                                "type": "number",
                                "default": 0
                              },
                              "latest_pledge_date": {
                                "type": "string",
                                "nullable": true
                              }
                            },
                            "required": [
                              "id",
                              "first_name",
                              "last_name",
                              "email",
                              "phone"
                            ]
                          }
                        },
                        "total": {
                          "type": "number"
                        },
                        "count": {
                          "type": "number"
                        },
                        "per_page": {
                          "type": "number"
                        },
                        "has_more": {
                          "type": "boolean"
                        },
                        "current_page": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "results",
                        "total",
                        "count",
                        "per_page",
                        "has_more",
                        "current_page"
                      ]
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Backers"
        ],
        "summary": "Create a new backer",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "first_name": {
                    "type": "string"
                  },
                  "last_name": {
                    "type": "string"
                  },
                  "email": {
                    "type": "string",
                    "format": "email"
                  },
                  "created_at": {
                    "type": "string",
                    "nullable": true
                  },
                  "phone": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string",
                    "nullable": true
                  },
                  "shipping_address": {
                    "type": "object",
                    "nullable": true,
                    "properties": {
                      "address": {
                        "type": "string"
                      },
                      "address_2": {
                        "type": "string",
                        "nullable": true
                      },
                      "city": {
                        "type": "string"
                      },
                      "state": {
                        "type": "string",
                        "nullable": true
                      },
                      "zip_code": {
                        "type": "string"
                      },
                      "country": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "address",
                      "city",
                      "zip_code",
                      "country"
                    ]
                  },
                  "billing_address": {
                    "type": "object",
                    "nullable": true,
                    "properties": {
                      "address": {
                        "type": "string",
                        "nullable": true
                      },
                      "address_2": {
                        "type": "string",
                        "nullable": true
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "state": {
                        "type": "string",
                        "nullable": true
                      },
                      "zip_code": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  "is_billing_address_same": {
                    "type": "boolean",
                    "default": false
                  },
                  "password": {
                    "type": "string",
                    "nullable": true,
                    "minLength": 6
                  }
                },
                "required": [
                  "first_name",
                  "last_name",
                  "email",
                  "phone"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Backer created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id"
                      ]
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/backers/{id}": {
      "put": {
        "tags": [
          "Backers"
        ],
        "summary": "Update a backer by ID",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "id",
            "in": "path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "first_name": {
                    "type": "string"
                  },
                  "last_name": {
                    "type": "string"
                  },
                  "email": {
                    "type": "string",
                    "format": "email"
                  },
                  "created_at": {
                    "type": "string",
                    "nullable": true
                  },
                  "phone": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string",
                    "nullable": true
                  },
                  "shipping_address": {
                    "type": "object",
                    "nullable": true,
                    "properties": {
                      "address": {
                        "type": "string"
                      },
                      "address_2": {
                        "type": "string",
                        "nullable": true
                      },
                      "city": {
                        "type": "string"
                      },
                      "state": {
                        "type": "string",
                        "nullable": true
                      },
                      "zip_code": {
                        "type": "string"
                      },
                      "country": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "address",
                      "city",
                      "zip_code",
                      "country"
                    ]
                  },
                  "billing_address": {
                    "type": "object",
                    "nullable": true,
                    "properties": {
                      "address": {
                        "type": "string",
                        "nullable": true
                      },
                      "address_2": {
                        "type": "string",
                        "nullable": true
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "state": {
                        "type": "string",
                        "nullable": true
                      },
                      "zip_code": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  "is_billing_address_same": {
                    "type": "boolean",
                    "default": false
                  },
                  "password": {
                    "type": "string",
                    "nullable": true,
                    "minLength": 6
                  }
                },
                "required": [
                  "first_name",
                  "last_name",
                  "email",
                  "phone"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Backer updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "boolean",
                      "default": true
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Backers"
        ],
        "summary": "Delete a backer by ID",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Backer deleted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "boolean",
                      "default": true
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Backer not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/backers/{id}/overview": {
      "get": {
        "tags": [
          "Backers"
        ],
        "summary": "Get a backer overview by ID",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Backer overview retrieved (TODO: Add proper schema)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "first_name": {
                      "type": "string"
                    },
                    "last_name": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string",
                      "format": "email"
                    },
                    "created_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "phone": {
                      "type": "string"
                    },
                    "image": {
                      "type": "object",
                      "nullable": true,
                      "properties": {
                        "id": {
                          "type": "string",
                          "nullable": true
                        },
                        "filename": {
                          "type": "string",
                          "nullable": true
                        },
                        "url": {
                          "type": "string"
                        },
                        "sizes": {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "height": {
                                    "type": "number",
                                    "nullable": true
                                  },
                                  "width": {
                                    "type": "number",
                                    "nullable": true
                                  },
                                  "url": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "orientation": {
                                    "type": "string",
                                    "nullable": true
                                  }
                                }
                              }
                            },
                            {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "nullable": true
                              }
                            },
                            {
                              "nullable": true
                            }
                          ]
                        },
                        "height": {
                          "type": "number",
                          "nullable": true
                        },
                        "width": {
                          "type": "number",
                          "nullable": true
                        },
                        "filesize": {
                          "type": "number",
                          "nullable": true
                        },
                        "mime": {
                          "type": "string",
                          "nullable": true
                        },
                        "type": {
                          "type": "string",
                          "nullable": true
                        },
                        "thumb": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "src": {
                              "type": "string"
                            },
                            "width": {
                              "type": "number"
                            },
                            "height": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "src",
                            "width",
                            "height"
                          ]
                        },
                        "author": {
                          "type": "string",
                          "nullable": true
                        },
                        "authorName": {
                          "type": "string",
                          "nullable": true
                        },
                        "date": {
                          "type": "string",
                          "nullable": true
                        }
                      },
                      "required": [
                        "url"
                      ]
                    },
                    "shipping_address": {
                      "type": "object",
                      "nullable": true,
                      "properties": {
                        "address": {
                          "type": "string"
                        },
                        "address_2": {
                          "type": "string",
                          "nullable": true
                        },
                        "city": {
                          "type": "string"
                        },
                        "state": {
                          "type": "string",
                          "nullable": true
                        },
                        "zip_code": {
                          "type": "string"
                        },
                        "country": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "address",
                        "city",
                        "zip_code",
                        "country"
                      ]
                    },
                    "billing_address": {
                      "type": "object",
                      "nullable": true,
                      "properties": {
                        "address": {
                          "type": "string",
                          "nullable": true
                        },
                        "address_2": {
                          "type": "string",
                          "nullable": true
                        },
                        "city": {
                          "type": "string",
                          "nullable": true
                        },
                        "state": {
                          "type": "string",
                          "nullable": true
                        },
                        "zip_code": {
                          "type": "string",
                          "nullable": true
                        },
                        "country": {
                          "type": "string",
                          "nullable": true
                        }
                      }
                    },
                    "is_billing_address_same": {
                      "type": "boolean",
                      "default": false
                    },
                    "number_of_contributions": {
                      "type": "number",
                      "default": 0
                    },
                    "total_contributions": {
                      "type": "number",
                      "default": 0
                    },
                    "latest_pledge_date": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "id",
                    "first_name",
                    "last_name",
                    "email",
                    "phone"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/backers/{backer_id}/pledges": {
      "get": {
        "tags": [
          "Backers"
        ],
        "summary": "Get a backer pledges by ID",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "backer_id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Backer pledges retrieved (TODO: Add proper schema)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "status": {
                        "type": "string",
                        "enum": [
                          "pending",
                          "completed",
                          "backed",
                          "failed",
                          "cancelled",
                          "refunded",
                          "trashed",
                          "in-progress"
                        ],
                        "default": "pending"
                      },
                      "pledge_option": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "with-rewards",
                          "without-rewards"
                        ]
                      },
                      "notes": {
                        "type": "string",
                        "nullable": true
                      },
                      "is_manual": {
                        "type": "boolean",
                        "default": false
                      },
                      "campaign_id": {
                        "type": "string",
                        "nullable": true
                      },
                      "user_id": {
                        "type": "string",
                        "nullable": true
                      },
                      "reward_id": {
                        "type": "string",
                        "nullable": true
                      },
                      "amount": {
                        "type": "number",
                        "nullable": true
                      },
                      "bonus_support_amount": {
                        "type": "number",
                        "nullable": true
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Backer not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/fundraisers": {
      "get": {
        "tags": [
          "Fundraisers"
        ],
        "summary": "Get paginated list of fundraisers",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "nullable": true
            },
            "required": false,
            "name": "search",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "nullable": true
            },
            "required": false,
            "name": "status",
            "in": "query"
          },
          {
            "schema": {
              "type": "number",
              "default": 1
            },
            "required": false,
            "name": "page",
            "in": "query"
          },
          {
            "schema": {
              "type": "number",
              "default": 10
            },
            "required": false,
            "name": "limit",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "default": "DESC"
            },
            "required": false,
            "name": "orderBy",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "default": "ID"
            },
            "required": false,
            "name": "order",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated list of fundraisers",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "results": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "first_name": {
                                "type": "string"
                              },
                              "last_name": {
                                "type": "string"
                              },
                              "email": {
                                "type": "string"
                              },
                              "phone": {
                                "type": "string"
                              },
                              "image": {
                                "type": "object",
                                "nullable": true,
                                "properties": {
                                  "id": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "filename": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "url": {
                                    "type": "string"
                                  },
                                  "sizes": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "additionalProperties": {
                                          "type": "object",
                                          "properties": {
                                            "height": {
                                              "type": "number",
                                              "nullable": true
                                            },
                                            "width": {
                                              "type": "number",
                                              "nullable": true
                                            },
                                            "url": {
                                              "type": "string",
                                              "nullable": true
                                            },
                                            "orientation": {
                                              "type": "string",
                                              "nullable": true
                                            }
                                          }
                                        }
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "nullable": true
                                        }
                                      },
                                      {
                                        "nullable": true
                                      }
                                    ]
                                  },
                                  "height": {
                                    "type": "number",
                                    "nullable": true
                                  },
                                  "width": {
                                    "type": "number",
                                    "nullable": true
                                  },
                                  "filesize": {
                                    "type": "number",
                                    "nullable": true
                                  },
                                  "mime": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "type": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "thumb": {
                                    "type": "object",
                                    "nullable": true,
                                    "properties": {
                                      "src": {
                                        "type": "string"
                                      },
                                      "width": {
                                        "type": "number"
                                      },
                                      "height": {
                                        "type": "number"
                                      }
                                    },
                                    "required": [
                                      "src",
                                      "width",
                                      "height"
                                    ]
                                  },
                                  "author": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "authorName": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "date": {
                                    "type": "string",
                                    "nullable": true
                                  }
                                },
                                "required": [
                                  "url"
                                ]
                              },
                              "id": {
                                "type": "string"
                              },
                              "joined_at": {
                                "type": "string"
                              },
                              "total_campaign_created": {
                                "type": "number"
                              },
                              "status": {
                                "type": "string",
                                "enum": [
                                  "all",
                                  "pending",
                                  "trashed",
                                  "inactive",
                                  "active"
                                ]
                              },
                              "decline_reason": {
                                "type": "string",
                                "nullable": true
                              }
                            },
                            "required": [
                              "first_name",
                              "last_name",
                              "email",
                              "phone",
                              "id",
                              "joined_at",
                              "total_campaign_created",
                              "status"
                            ]
                          }
                        },
                        "total": {
                          "type": "number"
                        },
                        "count": {
                          "type": "number"
                        },
                        "per_page": {
                          "type": "number"
                        },
                        "has_more": {
                          "type": "boolean"
                        },
                        "current_page": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "results",
                        "total",
                        "count",
                        "per_page",
                        "has_more",
                        "current_page"
                      ]
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Fundraisers"
        ],
        "summary": "Create a new backer",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "first_name": {
                    "type": "string"
                  },
                  "last_name": {
                    "type": "string"
                  },
                  "email": {
                    "type": "string"
                  },
                  "phone": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string",
                    "nullable": true
                  },
                  "password": {
                    "type": "string",
                    "nullable": true,
                    "minLength": 6
                  }
                },
                "required": [
                  "first_name",
                  "last_name",
                  "email",
                  "phone"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Fundraiser created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id"
                      ]
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/fundraisers/{id}": {
      "put": {
        "tags": [
          "Fundraisers"
        ],
        "summary": "Update a fundraiser by ID",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "id",
            "in": "path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "first_name": {
                    "type": "string"
                  },
                  "last_name": {
                    "type": "string"
                  },
                  "email": {
                    "type": "string"
                  },
                  "phone": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string",
                    "nullable": true
                  },
                  "password": {
                    "type": "string",
                    "nullable": true,
                    "minLength": 6
                  }
                },
                "required": [
                  "first_name",
                  "last_name",
                  "email",
                  "phone"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Fundraiser updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "boolean",
                      "default": true
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Fundraisers"
        ],
        "summary": "Update the status of fundraiser by ID",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "id",
            "in": "path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "approve",
                      "decline"
                    ]
                  },
                  "status": {
                    "type": "string"
                  },
                  "reason": {
                    "type": "string",
                    "nullable": true,
                    "description": "Required if action is \"decline\""
                  }
                },
                "required": [
                  "action",
                  "status"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Fundraiser updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "boolean",
                      "default": true
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Fundraiser not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/pledges": {
      "get": {
        "tags": [
          "Pledges"
        ],
        "summary": "Get paginated list of pledges",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "nullable": true
            },
            "required": false,
            "name": "search",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "nullable": true
            },
            "required": false,
            "name": "status",
            "in": "query"
          },
          {
            "schema": {
              "type": "number",
              "default": 1
            },
            "required": false,
            "name": "page",
            "in": "query"
          },
          {
            "schema": {
              "type": "number",
              "default": 10
            },
            "required": false,
            "name": "limit",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "default": "DESC"
            },
            "required": false,
            "name": "orderBy",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "default": "ID"
            },
            "required": false,
            "name": "order",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "nullable": true
            },
            "required": false,
            "name": "campaign_id",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated list of pledges (TODO: Add proper schema)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "results": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "status": {
                                "type": "string",
                                "enum": [
                                  "pending",
                                  "completed",
                                  "backed",
                                  "failed",
                                  "cancelled",
                                  "refunded",
                                  "trashed",
                                  "in-progress"
                                ],
                                "default": "pending"
                              },
                              "pledge_option": {
                                "type": "string",
                                "nullable": true,
                                "enum": [
                                  "with-rewards",
                                  "without-rewards"
                                ]
                              },
                              "notes": {
                                "type": "string",
                                "nullable": true
                              },
                              "is_manual": {
                                "type": "boolean",
                                "default": false
                              },
                              "campaign_id": {
                                "type": "string",
                                "nullable": true
                              },
                              "user_id": {
                                "type": "string",
                                "nullable": true
                              },
                              "reward_id": {
                                "type": "string",
                                "nullable": true
                              },
                              "amount": {
                                "type": "number",
                                "nullable": true
                              },
                              "bonus_support_amount": {
                                "type": "number",
                                "nullable": true
                              }
                            }
                          }
                        },
                        "total": {
                          "type": "number"
                        },
                        "count": {
                          "type": "number"
                        },
                        "per_page": {
                          "type": "number"
                        },
                        "has_more": {
                          "type": "boolean"
                        },
                        "current_page": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "results",
                        "total",
                        "count",
                        "per_page",
                        "has_more",
                        "current_page"
                      ]
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Pledges"
        ],
        "summary": "Create a new pledge (TODO: Add proper schema)",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "pending",
                      "completed",
                      "backed",
                      "failed",
                      "cancelled",
                      "refunded",
                      "trashed",
                      "in-progress"
                    ],
                    "default": "pending"
                  },
                  "pledge_option": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "with-rewards",
                      "without-rewards"
                    ]
                  },
                  "notes": {
                    "type": "string",
                    "nullable": true
                  },
                  "is_manual": {
                    "type": "boolean",
                    "default": false
                  },
                  "campaign_id": {
                    "type": "string",
                    "nullable": true
                  },
                  "user_id": {
                    "type": "string",
                    "nullable": true
                  },
                  "reward_id": {
                    "type": "string",
                    "nullable": true
                  },
                  "amount": {
                    "type": "number",
                    "nullable": true
                  },
                  "bonus_support_amount": {
                    "type": "number",
                    "nullable": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Pledge created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id"
                      ]
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/pledges/{id}": {
      "put": {
        "tags": [
          "Pledges"
        ],
        "summary": "Update a pledge by ID (TODO: Add proper schema)",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "id",
            "in": "path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "pending",
                      "completed",
                      "backed",
                      "failed",
                      "cancelled",
                      "refunded",
                      "trashed",
                      "in-progress"
                    ],
                    "default": "pending"
                  },
                  "pledge_option": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "with-rewards",
                      "without-rewards"
                    ]
                  },
                  "notes": {
                    "type": "string",
                    "nullable": true
                  },
                  "is_manual": {
                    "type": "boolean",
                    "default": false
                  },
                  "campaign_id": {
                    "type": "string",
                    "nullable": true
                  },
                  "user_id": {
                    "type": "string",
                    "nullable": true
                  },
                  "reward_id": {
                    "type": "string",
                    "nullable": true
                  },
                  "amount": {
                    "type": "number",
                    "nullable": true
                  },
                  "bonus_support_amount": {
                    "type": "number",
                    "nullable": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Pledge updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "boolean",
                      "default": true
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Pledges"
        ],
        "summary": "Get a pledge by ID (TODO: Add proper schema)",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Pledge retrieved (TODO: Add proper schema)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "enum": [
                            "pending",
                            "completed",
                            "backed",
                            "failed",
                            "cancelled",
                            "refunded",
                            "trashed",
                            "in-progress"
                          ],
                          "default": "pending"
                        },
                        "pledge_option": {
                          "type": "string",
                          "nullable": true,
                          "enum": [
                            "with-rewards",
                            "without-rewards"
                          ]
                        },
                        "notes": {
                          "type": "string",
                          "nullable": true
                        },
                        "is_manual": {
                          "type": "boolean",
                          "default": false
                        },
                        "campaign_id": {
                          "type": "string",
                          "nullable": true
                        },
                        "user_id": {
                          "type": "string",
                          "nullable": true
                        },
                        "reward_id": {
                          "type": "string",
                          "nullable": true
                        },
                        "amount": {
                          "type": "number",
                          "nullable": true
                        },
                        "bonus_support_amount": {
                          "type": "number",
                          "nullable": true
                        }
                      }
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Pledge not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/donations": {
      "get": {
        "tags": [
          "Donations"
        ],
        "summary": "Get paginated list of donations",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "nullable": true
            },
            "required": false,
            "name": "search",
            "in": "query"
          },
          {
            "schema": {
              "type": "number",
              "default": 1
            },
            "required": false,
            "name": "page",
            "in": "query"
          },
          {
            "schema": {
              "type": "number",
              "default": 10
            },
            "required": false,
            "name": "limit",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "default": "DESC"
            },
            "required": false,
            "name": "orderBy",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "default": "ID"
            },
            "required": false,
            "name": "order",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "nullable": true
            },
            "required": false,
            "name": "campaign_id",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "nullable": true
            },
            "required": false,
            "name": "start_date",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "nullable": true
            },
            "required": false,
            "name": "end_date",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "nullable": true
            },
            "required": false,
            "name": "status",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "nullable": true
            },
            "required": false,
            "name": "fund_id",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated list of donations",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "results": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "title": {
                                "type": "string",
                                "maxLength": 255
                              },
                              "slug": {
                                "type": "string",
                                "nullable": true,
                                "maxLength": 300
                              },
                              "description": {
                                "type": "string",
                                "nullable": true
                              },
                              "story": {
                                "type": "string",
                                "nullable": true
                              },
                              "images": {
                                "type": "array",
                                "nullable": true,
                                "items": {
                                  "type": "string"
                                }
                              },
                              "is_featured": {
                                "type": "boolean",
                                "default": false
                              },
                              "category": {
                                "type": "string",
                                "nullable": true
                              },
                              "sub_category": {
                                "type": "string",
                                "nullable": true
                              },
                              "start_date": {
                                "type": "string",
                                "nullable": true
                              },
                              "end_date": {
                                "type": "string",
                                "nullable": true
                              },
                              "location": {
                                "type": "string",
                                "nullable": true
                              },
                              "tags": {
                                "type": "array",
                                "nullable": true,
                                "items": {
                                  "type": "string"
                                }
                              },
                              "collaborators": {
                                "type": "array",
                                "nullable": true,
                                "items": {
                                  "type": "string"
                                }
                              },
                              "show_collaborator_list": {
                                "type": "boolean",
                                "default": true
                              },
                              "status": {
                                "type": "string",
                                "enum": [
                                  "draft",
                                  "published",
                                  "pending",
                                  "funded",
                                  "declined",
                                  "completed",
                                  "trashed",
                                  "declined"
                                ],
                                "default": "draft"
                              },
                              "risks": {
                                "type": "string",
                                "nullable": true
                              },
                              "has_goal": {
                                "type": "boolean",
                                "default": true
                              },
                              "goal_type": {
                                "type": "string",
                                "nullable": true,
                                "enum": [
                                  "raised-amount",
                                  "number-of-contributions",
                                  "number-of-contributors"
                                ]
                              },
                              "goal_amount": {
                                "type": "number",
                                "nullable": true
                              },
                              "reaching_action": {
                                "type": "string",
                                "nullable": true,
                                "enum": [
                                  "close",
                                  "continue"
                                ]
                              },
                              "confirmation_title": {
                                "type": "string",
                                "nullable": true
                              },
                              "confirmation_description": {
                                "type": "string",
                                "nullable": true
                              },
                              "provide_confirmation_pdf_receipt": {
                                "type": "boolean",
                                "default": true
                              },
                              "faqs": {
                                "type": "array",
                                "nullable": true,
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "question": {
                                      "type": "string"
                                    },
                                    "answer": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "question",
                                    "answer"
                                  ]
                                }
                              },
                              "created_at": {
                                "type": "string",
                                "nullable": true,
                                "format": "date-time"
                              },
                              "updated_at": {
                                "type": "string",
                                "nullable": true,
                                "format": "date-time"
                              },
                              "created_by": {
                                "type": "string",
                                "nullable": true
                              },
                              "updated_by": {
                                "type": "string",
                                "nullable": true
                              },
                              "number_of_donations": {
                                "type": "number",
                                "nullable": true
                              },
                              "number_of_donors": {
                                "type": "number",
                                "nullable": true
                              },
                              "allow_custom_donation": {
                                "type": "boolean",
                                "nullable": true,
                                "default": false
                              },
                              "min_donation_amount": {
                                "type": "number",
                                "nullable": true
                              },
                              "max_donation_amount": {
                                "type": "number",
                                "nullable": true
                              },
                              "suggested_option_type": {
                                "type": "string",
                                "nullable": true,
                                "enum": [
                                  "amount-only",
                                  "amount-description"
                                ],
                                "default": "amount-only"
                              },
                              "suggested_options": {
                                "type": "array",
                                "nullable": true,
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "amount": {
                                      "type": "number"
                                    },
                                    "description": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "is_default": {
                                      "type": "boolean",
                                      "default": false
                                    }
                                  },
                                  "required": [
                                    "amount"
                                  ]
                                },
                                "default": []
                              },
                              "has_tribute": {
                                "type": "boolean",
                                "default": true
                              },
                              "tribute_requirement": {
                                "type": "string",
                                "nullable": true,
                                "enum": [
                                  "required",
                                  "optional"
                                ],
                                "default": "optional"
                              },
                              "tribute_title": {
                                "type": "string",
                                "nullable": true
                              },
                              "tribute_options": {
                                "type": "array",
                                "nullable": true,
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "message": {
                                      "type": "string"
                                    },
                                    "is_editing": {
                                      "type": "boolean",
                                      "default": false
                                    },
                                    "is_default": {
                                      "type": "boolean",
                                      "default": false
                                    }
                                  },
                                  "required": [
                                    "message"
                                  ]
                                },
                                "default": []
                              },
                              "tribute_notification_preference": {
                                "type": "string",
                                "nullable": true,
                                "enum": [
                                  "send-ecard",
                                  "send-post-mail",
                                  "send-ecard-and-post-mail",
                                  "donor-decide"
                                ],
                                "default": "donor-decide"
                              },
                              "fund_selection_type": {
                                "type": "string",
                                "nullable": true,
                                "enum": [
                                  "fixed",
                                  "donor-decide"
                                ],
                                "default": "fixed"
                              },
                              "default_fund": {
                                "type": "string",
                                "nullable": true
                              },
                              "fund_choices": {
                                "type": "array",
                                "nullable": true,
                                "items": {
                                  "type": "string"
                                }
                              },
                              "donation_count": {
                                "type": "number",
                                "nullable": true
                              },
                              "video": {
                                "type": "string",
                                "nullable": true
                              }
                            },
                            "required": [
                              "id",
                              "title"
                            ]
                          }
                        },
                        "total": {
                          "type": "number"
                        },
                        "count": {
                          "type": "number"
                        },
                        "per_page": {
                          "type": "number"
                        },
                        "has_more": {
                          "type": "boolean"
                        },
                        "current_page": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "results",
                        "total",
                        "count",
                        "per_page",
                        "has_more",
                        "current_page"
                      ]
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Donations"
        ],
        "summary": "Create a new donation (TODO: Add proper schema)",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "slug": {
                    "type": "string",
                    "nullable": true,
                    "maxLength": 300
                  },
                  "description": {
                    "type": "string",
                    "nullable": true
                  },
                  "story": {
                    "type": "string",
                    "nullable": true
                  },
                  "images": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "nullable": true
                        },
                        "filename": {
                          "type": "string",
                          "nullable": true
                        },
                        "url": {
                          "type": "string"
                        },
                        "sizes": {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "height": {
                                    "type": "number",
                                    "nullable": true
                                  },
                                  "width": {
                                    "type": "number",
                                    "nullable": true
                                  },
                                  "url": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "orientation": {
                                    "type": "string",
                                    "nullable": true
                                  }
                                }
                              }
                            },
                            {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "nullable": true
                              }
                            },
                            {
                              "nullable": true
                            }
                          ]
                        },
                        "height": {
                          "type": "number",
                          "nullable": true
                        },
                        "width": {
                          "type": "number",
                          "nullable": true
                        },
                        "filesize": {
                          "type": "number",
                          "nullable": true
                        },
                        "mime": {
                          "type": "string",
                          "nullable": true
                        },
                        "type": {
                          "type": "string",
                          "nullable": true
                        },
                        "thumb": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "src": {
                              "type": "string"
                            },
                            "width": {
                              "type": "number"
                            },
                            "height": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "src",
                            "width",
                            "height"
                          ]
                        },
                        "author": {
                          "type": "string",
                          "nullable": true
                        },
                        "authorName": {
                          "type": "string",
                          "nullable": true
                        },
                        "date": {
                          "type": "string",
                          "nullable": true
                        }
                      },
                      "required": [
                        "url"
                      ]
                    }
                  },
                  "video": {
                    "type": "object",
                    "nullable": true,
                    "properties": {
                      "id": {
                        "type": "string",
                        "nullable": true
                      },
                      "filename": {
                        "type": "string",
                        "nullable": true
                      },
                      "url": {
                        "type": "string"
                      },
                      "sizes": {
                        "anyOf": [
                          {
                            "type": "object",
                            "additionalProperties": {
                              "type": "object",
                              "properties": {
                                "height": {
                                  "type": "number",
                                  "nullable": true
                                },
                                "width": {
                                  "type": "number",
                                  "nullable": true
                                },
                                "url": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "orientation": {
                                  "type": "string",
                                  "nullable": true
                                }
                              }
                            }
                          },
                          {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "nullable": true
                            }
                          },
                          {
                            "nullable": true
                          }
                        ]
                      },
                      "height": {
                        "type": "number",
                        "nullable": true
                      },
                      "width": {
                        "type": "number",
                        "nullable": true
                      },
                      "filesize": {
                        "type": "number",
                        "nullable": true
                      },
                      "mime": {
                        "type": "string",
                        "nullable": true
                      },
                      "type": {
                        "type": "string",
                        "nullable": true
                      },
                      "thumb": {
                        "type": "object",
                        "nullable": true,
                        "properties": {
                          "src": {
                            "type": "string"
                          },
                          "width": {
                            "type": "number"
                          },
                          "height": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "src",
                          "width",
                          "height"
                        ]
                      },
                      "author": {
                        "type": "string",
                        "nullable": true
                      },
                      "authorName": {
                        "type": "string",
                        "nullable": true
                      },
                      "date": {
                        "type": "string",
                        "nullable": true
                      },
                      "poster": {
                        "type": "object",
                        "nullable": true,
                        "properties": {
                          "id": {
                            "type": "string",
                            "nullable": true
                          },
                          "filename": {
                            "type": "string",
                            "nullable": true
                          },
                          "url": {
                            "type": "string"
                          },
                          "sizes": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": {
                                  "type": "object",
                                  "properties": {
                                    "height": {
                                      "type": "number",
                                      "nullable": true
                                    },
                                    "width": {
                                      "type": "number",
                                      "nullable": true
                                    },
                                    "url": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "orientation": {
                                      "type": "string",
                                      "nullable": true
                                    }
                                  }
                                }
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "nullable": true
                                }
                              },
                              {
                                "nullable": true
                              }
                            ]
                          },
                          "height": {
                            "type": "number",
                            "nullable": true
                          },
                          "width": {
                            "type": "number",
                            "nullable": true
                          },
                          "filesize": {
                            "type": "number",
                            "nullable": true
                          },
                          "mime": {
                            "type": "string",
                            "nullable": true
                          },
                          "type": {
                            "type": "string",
                            "nullable": true
                          },
                          "thumb": {
                            "type": "object",
                            "nullable": true,
                            "properties": {
                              "src": {
                                "type": "string"
                              },
                              "width": {
                                "type": "number"
                              },
                              "height": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "src",
                              "width",
                              "height"
                            ]
                          },
                          "author": {
                            "type": "string",
                            "nullable": true
                          },
                          "authorName": {
                            "type": "string",
                            "nullable": true
                          },
                          "date": {
                            "type": "string",
                            "nullable": true
                          }
                        },
                        "required": [
                          "url"
                        ]
                      }
                    },
                    "required": [
                      "url"
                    ]
                  },
                  "is_featured": {
                    "type": "boolean",
                    "default": false
                  },
                  "category": {
                    "type": "string",
                    "nullable": true
                  },
                  "sub_category": {
                    "type": "string",
                    "nullable": true
                  },
                  "start_date": {
                    "type": "string",
                    "nullable": true
                  },
                  "end_date": {
                    "type": "string",
                    "nullable": true
                  },
                  "location": {
                    "type": "string",
                    "nullable": true
                  },
                  "tags": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "string"
                    }
                  },
                  "collaborators": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "string"
                    }
                  },
                  "show_collaborator_list": {
                    "type": "boolean",
                    "default": true
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "published",
                      "pending",
                      "funded",
                      "declined",
                      "completed",
                      "trashed",
                      "declined"
                    ],
                    "default": "draft"
                  },
                  "risks": {
                    "type": "string",
                    "nullable": true
                  },
                  "has_goal": {
                    "type": "boolean",
                    "default": true
                  },
                  "goal_type": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "raised-amount",
                      "number-of-contributions",
                      "number-of-contributors"
                    ]
                  },
                  "goal_amount": {
                    "type": "number",
                    "nullable": true
                  },
                  "reaching_action": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "close",
                      "continue"
                    ]
                  },
                  "confirmation_title": {
                    "type": "string",
                    "nullable": true
                  },
                  "confirmation_description": {
                    "type": "string",
                    "nullable": true
                  },
                  "provide_confirmation_pdf_receipt": {
                    "type": "boolean",
                    "default": true
                  },
                  "faqs": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "object",
                      "properties": {
                        "question": {
                          "type": "string"
                        },
                        "answer": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "question",
                        "answer"
                      ]
                    }
                  },
                  "number_of_donations": {
                    "type": "number",
                    "nullable": true
                  },
                  "number_of_donors": {
                    "type": "number",
                    "nullable": true
                  },
                  "allow_custom_donation": {
                    "type": "boolean",
                    "nullable": true,
                    "default": false
                  },
                  "min_donation_amount": {
                    "type": "number",
                    "nullable": true
                  },
                  "max_donation_amount": {
                    "type": "number",
                    "nullable": true
                  },
                  "suggested_option_type": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "amount-only",
                      "amount-description"
                    ],
                    "default": "amount-only"
                  },
                  "suggested_options": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "object",
                      "properties": {
                        "amount": {
                          "type": "number"
                        },
                        "description": {
                          "type": "string",
                          "nullable": true
                        },
                        "is_default": {
                          "type": "boolean",
                          "default": false
                        }
                      },
                      "required": [
                        "amount"
                      ]
                    },
                    "default": []
                  },
                  "has_tribute": {
                    "type": "boolean",
                    "default": true
                  },
                  "tribute_requirement": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "required",
                      "optional"
                    ],
                    "default": "optional"
                  },
                  "tribute_title": {
                    "type": "string",
                    "nullable": true
                  },
                  "tribute_options": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "object",
                      "properties": {
                        "message": {
                          "type": "string"
                        },
                        "is_editing": {
                          "type": "boolean",
                          "default": false
                        },
                        "is_default": {
                          "type": "boolean",
                          "default": false
                        }
                      },
                      "required": [
                        "message"
                      ]
                    },
                    "default": []
                  },
                  "tribute_notification_preference": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "send-ecard",
                      "send-post-mail",
                      "send-ecard-and-post-mail",
                      "donor-decide"
                    ],
                    "default": "donor-decide"
                  },
                  "fund_selection_type": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "fixed",
                      "donor-decide"
                    ],
                    "default": "fixed"
                  },
                  "default_fund": {
                    "type": "string",
                    "nullable": true
                  },
                  "fund_choices": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "string"
                    }
                  },
                  "donation_count": {
                    "type": "number",
                    "nullable": true
                  }
                },
                "required": [
                  "id",
                  "title"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Donation created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id"
                      ]
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/donations/{id}": {
      "put": {
        "tags": [
          "Donations"
        ],
        "summary": "Update a donation by ID (TODO: Add proper schema)",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "id",
            "in": "path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "slug": {
                    "type": "string",
                    "nullable": true,
                    "maxLength": 300
                  },
                  "description": {
                    "type": "string",
                    "nullable": true
                  },
                  "story": {
                    "type": "string",
                    "nullable": true
                  },
                  "images": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "nullable": true
                        },
                        "filename": {
                          "type": "string",
                          "nullable": true
                        },
                        "url": {
                          "type": "string"
                        },
                        "sizes": {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "height": {
                                    "type": "number",
                                    "nullable": true
                                  },
                                  "width": {
                                    "type": "number",
                                    "nullable": true
                                  },
                                  "url": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "orientation": {
                                    "type": "string",
                                    "nullable": true
                                  }
                                }
                              }
                            },
                            {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "nullable": true
                              }
                            },
                            {
                              "nullable": true
                            }
                          ]
                        },
                        "height": {
                          "type": "number",
                          "nullable": true
                        },
                        "width": {
                          "type": "number",
                          "nullable": true
                        },
                        "filesize": {
                          "type": "number",
                          "nullable": true
                        },
                        "mime": {
                          "type": "string",
                          "nullable": true
                        },
                        "type": {
                          "type": "string",
                          "nullable": true
                        },
                        "thumb": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "src": {
                              "type": "string"
                            },
                            "width": {
                              "type": "number"
                            },
                            "height": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "src",
                            "width",
                            "height"
                          ]
                        },
                        "author": {
                          "type": "string",
                          "nullable": true
                        },
                        "authorName": {
                          "type": "string",
                          "nullable": true
                        },
                        "date": {
                          "type": "string",
                          "nullable": true
                        }
                      },
                      "required": [
                        "url"
                      ]
                    }
                  },
                  "video": {
                    "type": "object",
                    "nullable": true,
                    "properties": {
                      "id": {
                        "type": "string",
                        "nullable": true
                      },
                      "filename": {
                        "type": "string",
                        "nullable": true
                      },
                      "url": {
                        "type": "string"
                      },
                      "sizes": {
                        "anyOf": [
                          {
                            "type": "object",
                            "additionalProperties": {
                              "type": "object",
                              "properties": {
                                "height": {
                                  "type": "number",
                                  "nullable": true
                                },
                                "width": {
                                  "type": "number",
                                  "nullable": true
                                },
                                "url": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "orientation": {
                                  "type": "string",
                                  "nullable": true
                                }
                              }
                            }
                          },
                          {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "nullable": true
                            }
                          },
                          {
                            "nullable": true
                          }
                        ]
                      },
                      "height": {
                        "type": "number",
                        "nullable": true
                      },
                      "width": {
                        "type": "number",
                        "nullable": true
                      },
                      "filesize": {
                        "type": "number",
                        "nullable": true
                      },
                      "mime": {
                        "type": "string",
                        "nullable": true
                      },
                      "type": {
                        "type": "string",
                        "nullable": true
                      },
                      "thumb": {
                        "type": "object",
                        "nullable": true,
                        "properties": {
                          "src": {
                            "type": "string"
                          },
                          "width": {
                            "type": "number"
                          },
                          "height": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "src",
                          "width",
                          "height"
                        ]
                      },
                      "author": {
                        "type": "string",
                        "nullable": true
                      },
                      "authorName": {
                        "type": "string",
                        "nullable": true
                      },
                      "date": {
                        "type": "string",
                        "nullable": true
                      },
                      "poster": {
                        "type": "object",
                        "nullable": true,
                        "properties": {
                          "id": {
                            "type": "string",
                            "nullable": true
                          },
                          "filename": {
                            "type": "string",
                            "nullable": true
                          },
                          "url": {
                            "type": "string"
                          },
                          "sizes": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": {
                                  "type": "object",
                                  "properties": {
                                    "height": {
                                      "type": "number",
                                      "nullable": true
                                    },
                                    "width": {
                                      "type": "number",
                                      "nullable": true
                                    },
                                    "url": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "orientation": {
                                      "type": "string",
                                      "nullable": true
                                    }
                                  }
                                }
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "nullable": true
                                }
                              },
                              {
                                "nullable": true
                              }
                            ]
                          },
                          "height": {
                            "type": "number",
                            "nullable": true
                          },
                          "width": {
                            "type": "number",
                            "nullable": true
                          },
                          "filesize": {
                            "type": "number",
                            "nullable": true
                          },
                          "mime": {
                            "type": "string",
                            "nullable": true
                          },
                          "type": {
                            "type": "string",
                            "nullable": true
                          },
                          "thumb": {
                            "type": "object",
                            "nullable": true,
                            "properties": {
                              "src": {
                                "type": "string"
                              },
                              "width": {
                                "type": "number"
                              },
                              "height": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "src",
                              "width",
                              "height"
                            ]
                          },
                          "author": {
                            "type": "string",
                            "nullable": true
                          },
                          "authorName": {
                            "type": "string",
                            "nullable": true
                          },
                          "date": {
                            "type": "string",
                            "nullable": true
                          }
                        },
                        "required": [
                          "url"
                        ]
                      }
                    },
                    "required": [
                      "url"
                    ]
                  },
                  "is_featured": {
                    "type": "boolean",
                    "default": false
                  },
                  "category": {
                    "type": "string",
                    "nullable": true
                  },
                  "sub_category": {
                    "type": "string",
                    "nullable": true
                  },
                  "start_date": {
                    "type": "string",
                    "nullable": true
                  },
                  "end_date": {
                    "type": "string",
                    "nullable": true
                  },
                  "location": {
                    "type": "string",
                    "nullable": true
                  },
                  "tags": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "string"
                    }
                  },
                  "collaborators": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "string"
                    }
                  },
                  "show_collaborator_list": {
                    "type": "boolean",
                    "default": true
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "published",
                      "pending",
                      "funded",
                      "declined",
                      "completed",
                      "trashed",
                      "declined"
                    ],
                    "default": "draft"
                  },
                  "risks": {
                    "type": "string",
                    "nullable": true
                  },
                  "has_goal": {
                    "type": "boolean",
                    "default": true
                  },
                  "goal_type": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "raised-amount",
                      "number-of-contributions",
                      "number-of-contributors"
                    ]
                  },
                  "goal_amount": {
                    "type": "number",
                    "nullable": true
                  },
                  "reaching_action": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "close",
                      "continue"
                    ]
                  },
                  "confirmation_title": {
                    "type": "string",
                    "nullable": true
                  },
                  "confirmation_description": {
                    "type": "string",
                    "nullable": true
                  },
                  "provide_confirmation_pdf_receipt": {
                    "type": "boolean",
                    "default": true
                  },
                  "faqs": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "object",
                      "properties": {
                        "question": {
                          "type": "string"
                        },
                        "answer": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "question",
                        "answer"
                      ]
                    }
                  },
                  "number_of_donations": {
                    "type": "number",
                    "nullable": true
                  },
                  "number_of_donors": {
                    "type": "number",
                    "nullable": true
                  },
                  "allow_custom_donation": {
                    "type": "boolean",
                    "nullable": true,
                    "default": false
                  },
                  "min_donation_amount": {
                    "type": "number",
                    "nullable": true
                  },
                  "max_donation_amount": {
                    "type": "number",
                    "nullable": true
                  },
                  "suggested_option_type": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "amount-only",
                      "amount-description"
                    ],
                    "default": "amount-only"
                  },
                  "suggested_options": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "object",
                      "properties": {
                        "amount": {
                          "type": "number"
                        },
                        "description": {
                          "type": "string",
                          "nullable": true
                        },
                        "is_default": {
                          "type": "boolean",
                          "default": false
                        }
                      },
                      "required": [
                        "amount"
                      ]
                    },
                    "default": []
                  },
                  "has_tribute": {
                    "type": "boolean",
                    "default": true
                  },
                  "tribute_requirement": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "required",
                      "optional"
                    ],
                    "default": "optional"
                  },
                  "tribute_title": {
                    "type": "string",
                    "nullable": true
                  },
                  "tribute_options": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "object",
                      "properties": {
                        "message": {
                          "type": "string"
                        },
                        "is_editing": {
                          "type": "boolean",
                          "default": false
                        },
                        "is_default": {
                          "type": "boolean",
                          "default": false
                        }
                      },
                      "required": [
                        "message"
                      ]
                    },
                    "default": []
                  },
                  "tribute_notification_preference": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "send-ecard",
                      "send-post-mail",
                      "send-ecard-and-post-mail",
                      "donor-decide"
                    ],
                    "default": "donor-decide"
                  },
                  "fund_selection_type": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "fixed",
                      "donor-decide"
                    ],
                    "default": "fixed"
                  },
                  "default_fund": {
                    "type": "string",
                    "nullable": true
                  },
                  "fund_choices": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "string"
                    }
                  },
                  "donation_count": {
                    "type": "number",
                    "nullable": true
                  }
                },
                "required": [
                  "id",
                  "title"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Donation updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "boolean",
                      "default": true
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Donations"
        ],
        "summary": "Get a donation by ID",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Donation retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string",
                      "maxLength": 255
                    },
                    "slug": {
                      "type": "string",
                      "nullable": true,
                      "maxLength": 300
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "story": {
                      "type": "string",
                      "nullable": true
                    },
                    "images": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "string"
                      }
                    },
                    "is_featured": {
                      "type": "boolean",
                      "default": false
                    },
                    "category": {
                      "type": "string",
                      "nullable": true
                    },
                    "sub_category": {
                      "type": "string",
                      "nullable": true
                    },
                    "start_date": {
                      "type": "string",
                      "nullable": true
                    },
                    "end_date": {
                      "type": "string",
                      "nullable": true
                    },
                    "location": {
                      "type": "string",
                      "nullable": true
                    },
                    "tags": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "string"
                      }
                    },
                    "collaborators": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "string"
                      }
                    },
                    "show_collaborator_list": {
                      "type": "boolean",
                      "default": true
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "draft",
                        "published",
                        "pending",
                        "funded",
                        "declined",
                        "completed",
                        "trashed",
                        "declined"
                      ],
                      "default": "draft"
                    },
                    "risks": {
                      "type": "string",
                      "nullable": true
                    },
                    "has_goal": {
                      "type": "boolean",
                      "default": true
                    },
                    "goal_type": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "raised-amount",
                        "number-of-contributions",
                        "number-of-contributors"
                      ]
                    },
                    "goal_amount": {
                      "type": "number",
                      "nullable": true
                    },
                    "reaching_action": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "close",
                        "continue"
                      ]
                    },
                    "confirmation_title": {
                      "type": "string",
                      "nullable": true
                    },
                    "confirmation_description": {
                      "type": "string",
                      "nullable": true
                    },
                    "provide_confirmation_pdf_receipt": {
                      "type": "boolean",
                      "default": true
                    },
                    "faqs": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "object",
                        "properties": {
                          "question": {
                            "type": "string"
                          },
                          "answer": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "question",
                          "answer"
                        ]
                      }
                    },
                    "created_at": {
                      "type": "string",
                      "nullable": true,
                      "format": "date-time"
                    },
                    "updated_at": {
                      "type": "string",
                      "nullable": true,
                      "format": "date-time"
                    },
                    "created_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "updated_by": {
                      "type": "string",
                      "nullable": true
                    },
                    "number_of_donations": {
                      "type": "number",
                      "nullable": true
                    },
                    "number_of_donors": {
                      "type": "number",
                      "nullable": true
                    },
                    "allow_custom_donation": {
                      "type": "boolean",
                      "nullable": true,
                      "default": false
                    },
                    "min_donation_amount": {
                      "type": "number",
                      "nullable": true
                    },
                    "max_donation_amount": {
                      "type": "number",
                      "nullable": true
                    },
                    "suggested_option_type": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "amount-only",
                        "amount-description"
                      ],
                      "default": "amount-only"
                    },
                    "suggested_options": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "object",
                        "properties": {
                          "amount": {
                            "type": "number"
                          },
                          "description": {
                            "type": "string",
                            "nullable": true
                          },
                          "is_default": {
                            "type": "boolean",
                            "default": false
                          }
                        },
                        "required": [
                          "amount"
                        ]
                      },
                      "default": []
                    },
                    "has_tribute": {
                      "type": "boolean",
                      "default": true
                    },
                    "tribute_requirement": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "required",
                        "optional"
                      ],
                      "default": "optional"
                    },
                    "tribute_title": {
                      "type": "string",
                      "nullable": true
                    },
                    "tribute_options": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "object",
                        "properties": {
                          "message": {
                            "type": "string"
                          },
                          "is_editing": {
                            "type": "boolean",
                            "default": false
                          },
                          "is_default": {
                            "type": "boolean",
                            "default": false
                          }
                        },
                        "required": [
                          "message"
                        ]
                      },
                      "default": []
                    },
                    "tribute_notification_preference": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "send-ecard",
                        "send-post-mail",
                        "send-ecard-and-post-mail",
                        "donor-decide"
                      ],
                      "default": "donor-decide"
                    },
                    "fund_selection_type": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "fixed",
                        "donor-decide"
                      ],
                      "default": "fixed"
                    },
                    "default_fund": {
                      "type": "string",
                      "nullable": true
                    },
                    "fund_choices": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "string"
                      }
                    },
                    "donation_count": {
                      "type": "number",
                      "nullable": true
                    },
                    "video": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "id",
                    "title"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Donation not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/donors": {
      "get": {
        "tags": [
          "Donors"
        ],
        "summary": "Get paginated list of donors",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "nullable": true
            },
            "required": false,
            "name": "search",
            "in": "query"
          },
          {
            "schema": {
              "type": "number",
              "default": 1
            },
            "required": false,
            "name": "page",
            "in": "query"
          },
          {
            "schema": {
              "type": "number",
              "default": 10
            },
            "required": false,
            "name": "limit",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "default": "DESC"
            },
            "required": false,
            "name": "orderBy",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "default": "ID"
            },
            "required": false,
            "name": "order",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "nullable": true
            },
            "required": false,
            "name": "start_date",
            "in": "query"
          },
          {
            "schema": {
              "type": "string",
              "nullable": true
            },
            "required": false,
            "name": "end_date",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated list of donors",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "results": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "first_name": {
                                "type": "string"
                              },
                              "last_name": {
                                "type": "string"
                              },
                              "email": {
                                "type": "string"
                              },
                              "phone": {
                                "type": "string"
                              },
                              "billing_address": {
                                "type": "object",
                                "nullable": true,
                                "properties": {
                                  "address": {
                                    "type": "string"
                                  },
                                  "address_2": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "city": {
                                    "type": "string"
                                  },
                                  "state": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "zip_code": {
                                    "type": "string"
                                  },
                                  "country": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "address",
                                  "city",
                                  "zip_code",
                                  "country"
                                ]
                              },
                              "image": {
                                "type": "object",
                                "nullable": true,
                                "properties": {
                                  "id": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "filename": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "url": {
                                    "type": "string"
                                  },
                                  "sizes": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "additionalProperties": {
                                          "type": "object",
                                          "properties": {
                                            "height": {
                                              "type": "number",
                                              "nullable": true
                                            },
                                            "width": {
                                              "type": "number",
                                              "nullable": true
                                            },
                                            "url": {
                                              "type": "string",
                                              "nullable": true
                                            },
                                            "orientation": {
                                              "type": "string",
                                              "nullable": true
                                            }
                                          }
                                        }
                                      },
                                      {
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "nullable": true
                                        }
                                      },
                                      {
                                        "nullable": true
                                      }
                                    ]
                                  },
                                  "height": {
                                    "type": "number",
                                    "nullable": true
                                  },
                                  "width": {
                                    "type": "number",
                                    "nullable": true
                                  },
                                  "filesize": {
                                    "type": "number",
                                    "nullable": true
                                  },
                                  "mime": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "type": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "thumb": {
                                    "type": "object",
                                    "nullable": true,
                                    "properties": {
                                      "src": {
                                        "type": "string"
                                      },
                                      "width": {
                                        "type": "number"
                                      },
                                      "height": {
                                        "type": "number"
                                      }
                                    },
                                    "required": [
                                      "src",
                                      "width",
                                      "height"
                                    ]
                                  },
                                  "author": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "authorName": {
                                    "type": "string",
                                    "nullable": true
                                  },
                                  "date": {
                                    "type": "string",
                                    "nullable": true
                                  }
                                },
                                "required": [
                                  "url"
                                ]
                              },
                              "created_at": {
                                "type": "string"
                              },
                              "number_of_contributions": {
                                "type": "number",
                                "default": 0
                              },
                              "total_contributions": {
                                "type": "number",
                                "default": 0
                              },
                              "latest_donation_date": {
                                "type": "string",
                                "nullable": true
                              }
                            },
                            "required": [
                              "id",
                              "first_name",
                              "last_name",
                              "email",
                              "phone",
                              "created_at"
                            ]
                          }
                        },
                        "total": {
                          "type": "number"
                        },
                        "count": {
                          "type": "number"
                        },
                        "per_page": {
                          "type": "number"
                        },
                        "has_more": {
                          "type": "boolean"
                        },
                        "current_page": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "results",
                        "total",
                        "count",
                        "per_page",
                        "has_more",
                        "current_page"
                      ]
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Donors"
        ],
        "summary": "Create a new donor",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "first_name": {
                    "type": "string"
                  },
                  "last_name": {
                    "type": "string"
                  },
                  "email": {
                    "type": "string"
                  },
                  "phone": {
                    "type": "string"
                  },
                  "billing_address": {
                    "type": "object",
                    "nullable": true,
                    "properties": {
                      "address": {
                        "type": "string"
                      },
                      "address_2": {
                        "type": "string",
                        "nullable": true
                      },
                      "city": {
                        "type": "string"
                      },
                      "state": {
                        "type": "string",
                        "nullable": true
                      },
                      "zip_code": {
                        "type": "string"
                      },
                      "country": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "address",
                      "city",
                      "zip_code",
                      "country"
                    ]
                  },
                  "image": {
                    "type": "string",
                    "nullable": true
                  },
                  "password": {
                    "type": "string",
                    "nullable": true,
                    "minLength": 6
                  }
                },
                "required": [
                  "first_name",
                  "last_name",
                  "email",
                  "phone"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Donor created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id"
                      ]
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/donors/{id}": {
      "put": {
        "tags": [
          "Donors"
        ],
        "summary": "Update a donor by ID",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "id",
            "in": "path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "first_name": {
                    "type": "string"
                  },
                  "last_name": {
                    "type": "string"
                  },
                  "email": {
                    "type": "string"
                  },
                  "phone": {
                    "type": "string"
                  },
                  "billing_address": {
                    "type": "object",
                    "nullable": true,
                    "properties": {
                      "address": {
                        "type": "string"
                      },
                      "address_2": {
                        "type": "string",
                        "nullable": true
                      },
                      "city": {
                        "type": "string"
                      },
                      "state": {
                        "type": "string",
                        "nullable": true
                      },
                      "zip_code": {
                        "type": "string"
                      },
                      "country": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "address",
                      "city",
                      "zip_code",
                      "country"
                    ]
                  },
                  "image": {
                    "type": "string",
                    "nullable": true
                  },
                  "password": {
                    "type": "string",
                    "nullable": true,
                    "minLength": 6
                  }
                },
                "required": [
                  "first_name",
                  "last_name",
                  "email",
                  "phone"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Donor updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "boolean",
                      "default": true
                    },
                    "message": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": false
                    },
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "message",
                    "errors"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/donors/{id}/overview": {
      "get": {
        "tags": [
          "Donors"
        ],
        "summary": "Get a donor overview by ID",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Donor overview retrieved (TODO: Add proper schema)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "number_of_contributions": {
                      "type": "number",
                      "default": 0
                    },
                    "total_contributions": {
                      "type": "number",
                      "default": 0
                    },
                    "average_donation": {
                      "type": "number",
                      "default": 0
                    },
                    "donated_campaigns": {
                      "type": "number",
                      "default": 0
                    },
                    "profile": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "first_name": {
                          "type": "string"
                        },
                        "last_name": {
                          "type": "string"
                        },
                        "email": {
                          "type": "string"
                        },
                        "phone": {
                          "type": "string"
                        },
                        "billing_address": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "address": {
                              "type": "string"
                            },
                            "address_2": {
                              "type": "string",
                              "nullable": true
                            },
                            "city": {
                              "type": "string"
                            },
                            "state": {
                              "type": "string",
                              "nullable": true
                            },
                            "zip_code": {
                              "type": "string"
                            },
                            "country": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "address",
                            "city",
                            "zip_code",
                            "country"
                          ]
                        },
                        "image": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "id": {
                              "type": "string",
                              "nullable": true
                            },
                            "filename": {
                              "type": "string",
                              "nullable": true
                            },
                            "url": {
                              "type": "string"
                            },
                            "sizes": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "height": {
                                        "type": "number",
                                        "nullable": true
                                      },
                                      "width": {
                                        "type": "number",
                                        "nullable": true
                                      },
                                      "url": {
                                        "type": "string",
                                        "nullable": true
                                      },
                                      "orientation": {
                                        "type": "string",
                                        "nullable": true
                                      }
                                    }
                                  }
                                },
                                {
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "nullable": true
                                  }
                                },
                                {
                                  "nullable": true
                                }
                              ]
                            },
                            "height": {
                              "type": "number",
                              "nullable": true
                            },
                            "width": {
                              "type": "number",
                              "nullable": true
                            },
                            "filesize": {
                              "type": "number",
                              "nullable": true
                            },
                            "mime": {
                              "type": "string",
                              "nullable": true
                            },
                            "type": {
                              "type": "string",
                              "nullable": true
                            },
                            "thumb": {
                              "type": "object",
                              "nullable": true,
                              "properties": {
                                "src": {
                                  "type": "string"
                                },
                                "width": {
                                  "type": "number"
                                },
                                "height": {
                                  "type": "number"
                                }
                              },
                              "required": [
                                "src",
                                "width",
                                "height"
                              ]
                            },
                            "author": {
                              "type": "string",
                              "nullable": true
                            },
                            "authorName": {
                              "type": "string",
                              "nullable": true
                            },
                            "date": {
                              "type": "string",
                              "nullable": true
                            }
                          },
                          "required": [
                            "url"
                          ]
                        },
                        "created_at": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "first_name",
                        "last_name",
                        "email",
                        "phone",
                        "created_at"
                      ]
                    },
                    "activity_logs": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "timeline",
                              "campaign-submitted-for-review",
                              "campaign-re-submitted-for-review",
                              "campaign-declined",
                              "campaign-approved-and-published",
                              "campaign-set-deadline",
                              "campaign-removed-deadline",
                              "campaign-extended-deadline",
                              "campaign-marked-as-completed",
                              "campaign-post-update",
                              "campaign-goal-reached",
                              "commented-on-the-campaign",
                              "pledge-created",
                              "pledge-cancelled",
                              "pledge-backed",
                              "pledge-failed-to-back",
                              "pledge-completed",
                              "pledge-refund-requested",
                              "pledge-refund-received",
                              "pledge-receipt-downloaded",
                              "pledge-receipt-resend",
                              "donation-created",
                              "donation-cancelled",
                              "donation-failed",
                              "donation-completed",
                              "donation-refund-requested",
                              "donation-refund-received",
                              "donation-receipt-downloaded",
                              "donation-receipt-resend"
                            ]
                          },
                          "campaign_id": {
                            "type": "string",
                            "nullable": true
                          },
                          "campaign_title": {
                            "type": "string",
                            "nullable": true
                          },
                          "campaign_images": {
                            "type": "array",
                            "nullable": true,
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "filename": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "url": {
                                  "type": "string"
                                },
                                "sizes": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "additionalProperties": {
                                        "type": "object",
                                        "properties": {
                                          "height": {
                                            "type": "number",
                                            "nullable": true
                                          },
                                          "width": {
                                            "type": "number",
                                            "nullable": true
                                          },
                                          "url": {
                                            "type": "string",
                                            "nullable": true
                                          },
                                          "orientation": {
                                            "type": "string",
                                            "nullable": true
                                          }
                                        }
                                      }
                                    },
                                    {
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "nullable": true
                                      }
                                    },
                                    {
                                      "nullable": true
                                    }
                                  ]
                                },
                                "height": {
                                  "type": "number",
                                  "nullable": true
                                },
                                "width": {
                                  "type": "number",
                                  "nullable": true
                                },
                                "filesize": {
                                  "type": "number",
                                  "nullable": true
                                },
                                "mime": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "type": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "thumb": {
                                  "type": "object",
                                  "nullable": true,
                                  "properties": {
                                    "src": {
                                      "type": "string"
                                    },
                                    "width": {
                                      "type": "number"
                                    },
                                    "height": {
                                      "type": "number"
                                    }
                                  },
                                  "required": [
                                    "src",
                                    "width",
                                    "height"
                                  ]
                                },
                                "author": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "authorName": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "date": {
                                  "type": "string",
                                  "nullable": true
                                }
                              },
                              "required": [
                                "url"
                              ]
                            }
                          },
                          "pledge_id": {
                            "type": "string",
                            "nullable": true
                          },
                          "donation_id": {
                            "type": "string",
                            "nullable": true
                          },
                          "created_by": {
                            "type": "string"
                          },
                          "created_by_image": {
                            "type": "object",
                            "nullable": true,
                            "properties": {
                              "id": {
                                "type": "string",
                                "nullable": true
                              },
                              "filename": {
                                "type": "string",
                                "nullable": true
                              },
                              "url": {
                                "type": "string"
                              },
                              "sizes": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": {
                                      "type": "object",
                                      "properties": {
                                        "height": {
                                          "type": "number",
                                          "nullable": true
                                        },
                                        "width": {
                                          "type": "number",
                                          "nullable": true
                                        },
                                        "url": {
                                          "type": "string",
                                          "nullable": true
                                        },
                                        "orientation": {
                                          "type": "string",
                                          "nullable": true
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "nullable": true
                                    }
                                  },
                                  {
                                    "nullable": true
                                  }
                                ]
                              },
                              "height": {
                                "type": "number",
                                "nullable": true
                              },
                              "width": {
                                "type": "number",
                                "nullable": true
                              },
                              "filesize": {
                                "type": "number",
                                "nullable": true
                              },
                              "mime": {
                                "type": "string",
                                "nullable": true
                              },
                              "type": {
                                "type": "string",
                                "nullable": true
                              },
                              "thumb": {
                                "type": "object",
                                "nullable": true,
                                "properties": {
                                  "src": {
                                    "type": "string"
                                  },
                                  "width": {
                                    "type": "number"
                                  },
                                  "height": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "src",
                                  "width",
                                  "height"
                                ]
                              },
                              "author": {
                                "type": "string",
                                "nullable": true
                              },
                              "authorName": {
                                "type": "string",
                                "nullable": true
                              },
                              "date": {
                                "type": "string",
                                "nullable": true
                              }
                            },
                            "required": [
                              "url"
                            ]
                          },
                          "created_by_name": {
                            "type": "string"
                          },
                          "created_at": {
                            "type": "string"
                          },
                          "data": {
                            "type": "object",
                            "nullable": true,
                            "properties": {
                              "comment": {
                                "type": "string",
                                "nullable": true
                              },
                              "post_update_id": {
                                "type": "string",
                                "nullable": true
                              },
                              "old_end_date": {
                                "type": "string",
                                "nullable": true
                              },
                              "new_end_date": {
                                "type": "string",
                                "nullable": true
                              },
                              "no_of_extended_days": {
                                "type": "number",
                                "nullable": true
                              },
                              "donation_amount": {
                                "type": "number",
                                "nullable": true
                              },
                              "pledge_amount": {
                                "type": "number",
                                "nullable": true
                              }
                            }
                          }
                        },
                        "required": [
                          "id",
                          "type",
                          "created_by",
                          "created_by_name",
                          "created_at"
                        ]
                      }
                    }
                  },
                  "required": [
                    "profile",
                    "activity_logs"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/donors/{id}/donations": {
      "get": {
        "tags": [
          "Donors"
        ],
        "summary": "Get a donor donations by ID",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Donor donations retrieved (TODO: Add proper schema)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "default": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "results": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "title": {
                                "type": "string",
                                "maxLength": 255
                              },
                              "slug": {
                                "type": "string",
                                "nullable": true,
                                "maxLength": 300
                              },
                              "description": {
                                "type": "string",
                                "nullable": true
                              },
                              "story": {
                                "type": "string",
                                "nullable": true
                              },
                              "images": {
                                "type": "array",
                                "nullable": true,
                                "items": {
                                  "type": "string"
                                }
                              },
                              "is_featured": {
                                "type": "boolean",
                                "default": false
                              },
                              "category": {
                                "type": "string",
                                "nullable": true
                              },
                              "sub_category": {
                                "type": "string",
                                "nullable": true
                              },
                              "start_date": {
                                "type": "string",
                                "nullable": true
                              },
                              "end_date": {
                                "type": "string",
                                "nullable": true
                              },
                              "location": {
                                "type": "string",
                                "nullable": true
                              },
                              "tags": {
                                "type": "array",
                                "nullable": true,
                                "items": {
                                  "type": "string"
                                }
                              },
                              "collaborators": {
                                "type": "array",
                                "nullable": true,
                                "items": {
                                  "type": "string"
                                }
                              },
                              "show_collaborator_list": {
                                "type": "boolean",
                                "default": true
                              },
                              "status": {
                                "type": "string",
                                "enum": [
                                  "draft",
                                  "published",
                                  "pending",
                                  "funded",
                                  "declined",
                                  "completed",
                                  "trashed",
                                  "declined"
                                ],
                                "default": "draft"
                              },
                              "risks": {
                                "type": "string",
                                "nullable": true
                              },
                              "has_goal": {
                                "type": "boolean",
                                "default": true
                              },
                              "goal_type": {
                                "type": "string",
                                "nullable": true,
                                "enum": [
                                  "raised-amount",
                                  "number-of-contributions",
                                  "number-of-contributors"
                                ]
                              },
                              "goal_amount": {
                                "type": "number",
                                "nullable": true
                              },
                              "reaching_action": {
                                "type": "string",
                                "nullable": true,
                                "enum": [
                                  "close",
                                  "continue"
                                ]
                              },
                              "confirmation_title": {
                                "type": "string",
                                "nullable": true
                              },
                              "confirmation_description": {
                                "type": "string",
                                "nullable": true
                              },
                              "provide_confirmation_pdf_receipt": {
                                "type": "boolean",
                                "default": true
                              },
                              "faqs": {
                                "type": "array",
                                "nullable": true,
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "question": {
                                      "type": "string"
                                    },
                                    "answer": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "question",
                                    "answer"
                                  ]
                                }
                              },
                              "created_at": {
                                "type": "string",
                                "nullable": true,
                                "format": "date-time"
                              },
                              "updated_at": {
                                "type": "string",
                                "nullable": true,
                                "format": "date-time"
                              },
                              "created_by": {
                                "type": "string",
                                "nullable": true
                              },
                              "updated_by": {
                                "type": "string",
                                "nullable": true
                              },
                              "number_of_donations": {
                                "type": "number",
                                "nullable": true
                              },
                              "number_of_donors": {
                                "type": "number",
                                "nullable": true
                              },
                              "allow_custom_donation": {
                                "type": "boolean",
                                "nullable": true,
                                "default": false
                              },
                              "min_donation_amount": {
                                "type": "number",
                                "nullable": true
                              },
                              "max_donation_amount": {
                                "type": "number",
                                "nullable": true
                              },
                              "suggested_option_type": {
                                "type": "string",
                                "nullable": true,
                                "enum": [
                                  "amount-only",
                                  "amount-description"
                                ],
                                "default": "amount-only"
                              },
                              "suggested_options": {
                                "type": "array",
                                "nullable": true,
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "amount": {
                                      "type": "number"
                                    },
                                    "description": {
                                      "type": "string",
                                      "nullable": true
                                    },
                                    "is_default": {
                                      "type": "boolean",
                                      "default": false
                                    }
                                  },
                                  "required": [
                                    "amount"
                                  ]
                                },
                                "default": []
                              },
                              "has_tribute": {
                                "type": "boolean",
                                "default": true
                              },
                              "tribute_requirement": {
                                "type": "string",
                                "nullable": true,
                                "enum": [
                                  "required",
                                  "optional"
                                ],
                                "default": "optional"
                              },
                              "tribute_title": {
                                "type": "string",
                                "nullable": true
                              },
                              "tribute_options": {
                                "type": "array",
                                "nullable": true,
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "message": {
                                      "type": "string"
                                    },
                                    "is_editing": {
                                      "type": "boolean",
                                      "default": false
                                    },
                                    "is_default": {
                                      "type": "boolean",
                                      "default": false
                                    }
                                  },
                                  "required": [
                                    "message"
                                  ]
                                },
                                "default": []
                              },
                              "tribute_notification_preference": {
                                "type": "string",
                                "nullable": true,
                                "enum": [
                                  "send-ecard",
                                  "send-post-mail",
                                  "send-ecard-and-post-mail",
                                  "donor-decide"
                                ],
                                "default": "donor-decide"
                              },
                              "fund_selection_type": {
                                "type": "string",
                                "nullable": true,
                                "enum": [
                                  "fixed",
                                  "donor-decide"
                                ],
                                "default": "fixed"
                              },
                              "default_fund": {
                                "type": "string",
                                "nullable": true
                              },
                              "fund_choices": {
                                "type": "array",
                                "nullable": true,
                                "items": {
                                  "type": "string"
                                }
                              },
                              "donation_count": {
                                "type": "number",
                                "nullable": true
                              },
                              "video": {
                                "type": "string",
                                "nullable": true
                              }
                            },
                            "required": [
                              "id",
                              "title"
                            ]
                          }
                        },
                        "total": {
                          "type": "number"
                        },
                        "count": {
                          "type": "number"
                        },
                        "per_page": {
                          "type": "number"
                        },
                        "has_more": {
                          "type": "boolean"
                        },
                        "current_page": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "results",
                        "total",
                        "count",
                        "per_page",
                        "has_more",
                        "current_page"
                      ]
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          }
        }
      }
    }
  }
}