광고연구소

계획서

OnSureLab

Step 2 조건 + Step 3 상품 정보를 바탕으로 9개 섹션의 집행계획서를 생성/조회/수정합니다.

POST

집행계획서 생성

엔드포인트
POST /api/onsurelab/executions/:id/plan
요청 Body
필드타입필수설명
step2Payloadobject
필수
Step 2 집행 조건 전체
selectedProductobject
필수
Step 3 선택 상품
selectedPriceobject
필수
Step 3 선택 가격
성공 응답 (201)
{
  "success": true,
  "data": {
    "planId": "plan_abc123def4",
    "meta": {
      "generatedAt": 1705312800000,
      "version": 1,
      "productId": "prod_001"
    },
    "sections": {
      "overview": { "id": "overview", "title": "사업개요", "content": "..." },
      "background": { "id": "background", "title": "사업배경 및 필요성", "content": "..." },
      "strategy": { "id": "strategy", "title": "전략 및 메시지", "content": "..." },
      "details": { "id": "details", "title": "집행 상세", "content": "..." },
      "schedule": { "id": "schedule", "title": "일정", "content": "..." },
      "kpi": { "id": "kpi", "title": "성과지표", "content": "..." },
      "budget": { "id": "budget", "title": "예산", "content": "..." },
      "evidence": { "id": "evidence", "title": "증빙계획", "content": "..." },
      "risk": { "id": "risk", "title": "리스크 관리", "content": "..." }
    },
    "tables": {
      "budgetItems": [
        { "category": "광고비", "detail": "강남역 스크린도어", "unitPrice": 720000, "qty": 1, "unit": "건", "total": 720000 }
      ],
      "totalBudget": 720000,
      "vatIncluded": 792000,
      "scheduleItems": [
        { "week": 1, "phase": "기획", "activity": "브리핑 및 소재 기획", "output": "기획안" }
      ]
    }
  }
}
GET

집행계획서 조회

엔드포인트
GET /api/onsurelab/executions/:id/plan
성공 응답 (200)

POST 응답과 동일 포맷

PATCH

집행계획서 섹션 수정

유저가 자동생성된 계획서 내용을 직접 수정했을 때. 보낸 섹션만 덮어씁니다.

엔드포인트
PATCH /api/onsurelab/executions/:id/plan
요청 Body
{
  "sections": {
    "overview": {
      "id": "overview",
      "title": "사업개요",
      "content": "수정된 사업개요 내용...",
      "isEdited": true
    }
  }
}

보낸 섹션만 덮어씀. 나머지 섹션은 유지.

성공 응답 (200)

POST 응답과 동일 포맷 (업데이트된 전체 계획서)