{
  "info": {
    "_postman_id": "ca448a27-03a1-4ea8-adc6-a0870d15f02e",
    "name": "Forum",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "_exporter_id": "40701166"
  },
  "item": [
    {
      "name": "Board",
      "item": [
        {
          "name": "게시판 목록",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/forum/boards?page=1&perPage=20&boardGroupID=1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "forum",
                "boards"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1"
                },
                {
                  "key": "perPage",
                  "value": "20"
                },
                {
                  "key": "boardGroupID",
                  "value": "1"
                },
                {
                  "key": "boardGroupCode",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "keyword",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "게시판 목록을 조회합니다. boardGroupID 또는 boardGroupCode로 필터링 가능."
          },
          "response": []
        },
        {
          "name": "게시판 상세 조회",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/forum/boards/free",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "forum",
                "boards",
                "free"
              ]
            },
            "description": "게시판 코드로 상세 정보를 조회합니다."
          },
          "response": []
        },
        {
          "name": "게시판 메타 조회",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/forum/boards/1/meta",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "forum",
                "boards",
                "1",
                "meta"
              ]
            },
            "description": "게시판 ID로 메타(속성) 정보를 조회합니다."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Post",
      "item": [
        {
          "name": "게시글 검색",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/forum/posts?boardID=1&page=1&perPage=20",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "forum",
                "posts"
              ],
              "query": [
                {
                  "key": "boardID",
                  "value": "1"
                },
                {
                  "key": "boardPrefixID",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "search",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "keyword",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "startAt",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "endAt",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "sort",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "isNotice",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "isSecret",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "isReply",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "isDeleted",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "page",
                  "value": "1"
                },
                {
                  "key": "perPage",
                  "value": "20"
                }
              ]
            },
            "description": "게시글 목록을 검색합니다. 다양한 필터 및 정렬 옵션 지원."
          },
          "response": []
        },
        {
          "name": "게시글 보기",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/forum/posts/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "forum",
                "posts",
                "1"
              ]
            },
            "description": "게시글 상세를 조회합니다. 조회수가 증가됩니다."
          },
          "response": []
        },
        {
          "name": "게시글 등록",
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "BoardID",
                  "value": "1",
                  "type": "text"
                },
                {
                  "key": "Subject",
                  "value": "제목입니다",
                  "type": "text"
                },
                {
                  "key": "Content",
                  "value": "내용입니다",
                  "type": "text"
                },
                {
                  "key": "IsSecret",
                  "value": "false",
                  "type": "text"
                },
                {
                  "key": "IsNotice",
                  "value": "false",
                  "type": "text"
                },
                {
                  "key": "IsSpeaker",
                  "value": "false",
                  "type": "text"
                },
                {
                  "key": "images",
                  "type": "file",
                  "src": ""
                },
                {
                  "key": "files",
                  "type": "file",
                  "src": ""
                }
              ]
            },
            "url": {
              "raw": "{{baseUrl}}/api/forum/posts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "forum",
                "posts"
              ]
            },
            "description": "게시글을 등록합니다. FormData로 이미지/파일 첨부 가능."
          },
          "response": []
        },
        {
          "name": "게시글 수정",
          "request": {
            "method": "PUT",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "Subject",
                  "value": "수정된 제목",
                  "type": "text"
                },
                {
                  "key": "Content",
                  "value": "수정된 내용",
                  "type": "text"
                },
                {
                  "key": "IsSecret",
                  "value": "false",
                  "type": "text"
                },
                {
                  "key": "IsNotice",
                  "value": "false",
                  "type": "text"
                },
                {
                  "key": "IsSpeaker",
                  "value": "false",
                  "type": "text"
                }
              ]
            },
            "url": {
              "raw": "{{baseUrl}}/api/forum/posts/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "forum",
                "posts",
                "1"
              ]
            },
            "description": "게시글을 수정합니다. FormData로 이미지/파일 첨부 가능."
          },
          "response": []
        },
        {
          "name": "게시글 삭제",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/forum/posts/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "forum",
                "posts",
                "1"
              ]
            },
            "description": "게시글을 삭제합니다."
          },
          "response": []
        },
        {
          "name": "게시글 좋아요/싫어요",
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"Reaction\": 0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/forum/posts/1/reaction",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "forum",
                "posts",
                "1",
                "reaction"
              ]
            },
            "description": "게시글에 좋아요/싫어요를 토글합니다. Reaction: 0=좋아요, 1=싫어요"
          },
          "response": []
        },
        {
          "name": "게시글 즐겨찾기",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/forum/posts/1/bookmark",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "forum",
                "posts",
                "1",
                "bookmark"
              ]
            },
            "description": "게시글 즐겨찾기를 토글합니다."
          },
          "response": []
        },
        {
          "name": "게시글 신고",
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"Type\": 0,\n    \"Reason\": \"신고 사유입니다\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/forum/posts/1/report",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "forum",
                "posts",
                "1",
                "report"
              ]
            },
            "description": "게시글을 신고합니다."
          },
          "response": []
        },
        {
          "name": "링크 클릭",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/forum/posts/links/1/click",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "forum",
                "posts",
                "links",
                "1",
                "click"
              ]
            },
            "description": "게시글 내 링크 클릭을 기록하고 리다이렉트 URL을 반환합니다."
          },
          "response": []
        },
        {
          "name": "첨부파일 다운로드",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/forum/post/file/00000000-0000-0000-0000-000000000000",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "forum",
                "post",
                "file",
                "00000000-0000-0000-0000-000000000000"
              ]
            },
            "description": "게시글 첨부파일을 다운로드합니다. UUID로 파일을 식별합니다."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Comment",
      "item": [
        {
          "name": "댓글 목록 (게시글별)",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/forum/posts/1/comments?page=1&perPage=20&sort=0",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "forum",
                "posts",
                "1",
                "comments"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1"
                },
                {
                  "key": "perPage",
                  "value": "20"
                },
                {
                  "key": "sort",
                  "value": "0",
                  "description": "정렬 (0=최신순)"
                }
              ]
            },
            "description": "특정 게시글의 댓글 목록을 조회합니다."
          },
          "response": []
        },
        {
          "name": "댓글 검색",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/forum/comments?page=1&perPage=20",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "forum",
                "comments"
              ],
              "query": [
                {
                  "key": "boardID",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "postID",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "search",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "keyword",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "startAt",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "endAt",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "isDeleted",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "page",
                  "value": "1"
                },
                {
                  "key": "perPage",
                  "value": "20"
                }
              ]
            },
            "description": "댓글을 검색합니다. 게시판/게시글/키워드/기간 등으로 필터링 가능."
          },
          "response": []
        },
        {
          "name": "댓글 상세 조회",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/forum/comments/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "forum",
                "comments",
                "1"
              ]
            },
            "description": "댓글 상세를 조회합니다."
          },
          "response": []
        },
        {
          "name": "멘션 후보 조회",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/forum/comments/mention?postID=1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "forum",
                "comments",
                "mention"
              ],
              "query": [
                {
                  "key": "postID",
                  "value": "1",
                  "description": "게시글 ID (필수)"
                },
                {
                  "key": "keyword",
                  "value": "",
                  "disabled": true,
                  "description": "검색어"
                }
              ]
            },
            "description": "댓글 멘션(@) 자동완성 후보 목록을 조회합니다."
          },
          "response": []
        },
        {
          "name": "댓글 등록",
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "PostID",
                  "value": "1",
                  "type": "text"
                },
                {
                  "key": "Content",
                  "value": "댓글 내용입니다",
                  "type": "text"
                },
                {
                  "key": "IsSecret",
                  "value": "false",
                  "type": "text"
                },
                {
                  "key": "ParentID",
                  "value": "",
                  "type": "text",
                  "disabled": true
                },
                {
                  "key": "Mention",
                  "value": "",
                  "type": "text",
                  "disabled": true
                }
              ]
            },
            "url": {
              "raw": "{{baseUrl}}/api/forum/comments",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "forum",
                "comments"
              ]
            },
            "description": "댓글을 등록합니다. FormData로 이미지/파일 첨부 가능."
          },
          "response": []
        },
        {
          "name": "댓글 수정",
          "request": {
            "method": "PUT",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "Content",
                  "value": "수정된 댓글 내용",
                  "type": "text"
                },
                {
                  "key": "IsSecret",
                  "value": "false",
                  "type": "text"
                }
              ]
            },
            "url": {
              "raw": "{{baseUrl}}/api/forum/comments/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "forum",
                "comments",
                "1"
              ]
            },
            "description": "댓글을 수정합니다. FormData로 이미지/파일 첨부 가능."
          },
          "response": []
        },
        {
          "name": "댓글 삭제",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/forum/comments/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "forum",
                "comments",
                "1"
              ]
            },
            "description": "댓글을 삭제합니다."
          },
          "response": []
        },
        {
          "name": "댓글 좋아요/싫어요",
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"Reaction\": 0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/forum/comments/1/reaction",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "forum",
                "comments",
                "1",
                "reaction"
              ]
            },
            "description": "댓글에 좋아요/싫어요를 토글합니다. Reaction: 0=좋아요, 1=싫어요"
          },
          "response": []
        },
        {
          "name": "댓글 신고",
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"Type\": 0,\n    \"Reason\": \"신고 사유입니다\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/forum/comments/1/report",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "forum",
                "comments",
                "1",
                "report"
              ]
            },
            "description": "댓글을 신고합니다."
          },
          "response": []
        },
        {
          "name": "댓글 첨부파일 다운로드",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/forum/comment/file/00000000-0000-0000-0000-000000000000",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "forum",
                "comment",
                "file",
                "00000000-0000-0000-0000-000000000000"
              ]
            },
            "description": "댓글 첨부파일을 다운로드합니다. UUID로 파일을 식별합니다."
          },
          "response": []
        }
      ]
    }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{accessToken}}",
        "type": "string"
      }
    ]
  },
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "type": "text/javascript",
        "packages": {},
        "requests": {},
        "exec": [
          ""
        ]
      }
    },
    {
      "listen": "test",
      "script": {
        "type": "text/javascript",
        "packages": {},
        "requests": {},
        "exec": [
          ""
        ]
      }
    }
  ]
}