# CampaignInfo
- 방송 상세 정보
- 방송의 정보는 공통적으로 구성되는 요소들과 함께 각 상태 (`READY`, `ONAIR`, `CLOSED`) 별로 다른 요소들이 추가됩니다.
## 공통(Common)
| Name | Type | Description | Note |
| ------------------ | -------------------------------------- | ----------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| campaignKey | string | campaign key | |
| campaignUrl | string | 방송 서비스 URL | 샵라이브 도메인으로 직접 제공하는, 사용자가 PC/모바일 웹에서 방송에 입장하기 위한 웹페이지 URL입니다. 파라미터에 tk=`{authorization jwt token}`을 함께 붙여 로그인 사용자로 입장시킬 수 있습니다. |
| title | string | 방송 이름 | |
| hostName | string | 진행자 이름 | 캠페인에 진행자를 명시할 경우 진행자의 이름을 반환합니다 |
| memo | string | 방송 메모 | |
| campaignStatus | string | 방송 상태 | `READY` 준비중<br>`ONAIR` 진행중<br>`CLOSED` 종료됨 |
| unsupportInfoUrl | string | IE 미지원 안내 이미지 URL | IE에서 접속했을 때 화면에 노출할 이미지 URL입니다. 방송 상세 설정에서 이미지를 업로드할 수 있습니다. |
| campaignGoodsList | list\<[CampaignGoods](#CampaignGoods)> | 방송 상품 목록 | 방송에 등록된 상품 목록입니다.<br>캠페인 목록 API에서는 모아보기 구성을 위한 최상단 1개의 상품만 제공하며, 캠페인 상세 조회 시 `allGoods=true` 인 경우 전체 상품 목록을 반환합니다. |
| campaignGoodsCount | int32 | 방송에 등록 상품 개수 | 이 방송에 등록되어 있는 상품의 총 개수입니다. |
| scheduledAt | timestamp(int64) | 방송 시작 예정 시각 | timestamp in milliseconds.<br>방송 시작 예정 시각을 방송 상세 설정에서 지정할 수 있습니다. |
| scheduledEndAt | timestamp(int64) | 방송 종료 예정 시각 | timestamp in milliseconds.<br>방송 종료 예정 시각을 방송 상세 설정에서 지정할 수 있습니다. |
| userCount | int32 | 누적 시청자수 | |
| adoreCount | int32 | 좋아요 수 | |
### `준비중` 상태일 때 다음의 정보가 추가로 세팅됩니다.
- `READY`
| Name | Type | Description | Note |
| --------- | ------ | ----------- | --------------------------------- |
| posterUrl | string | 예고 이미지 | 방송 시작 전 `준비중` 상태에서 노출할 예고 이미지입니다. |
### `진행중` 상태일 때 다음의 정보가 추가로 세팅됩니다.
- `ONAIR`
| Name | Type | Description | Note |
| -------------- | ---------------- | --------------------- | ------------------------------------------------------------------------------------------------------- |
| previewLiveUrl | string | 방송 영상 미리보기 (m3u8) URL | 로고, 사용자수, 채팅 등을 제외한 **영상만** 미리보기로 제공할 경우에 필요한 HLS m3u8 URL 정보입니다.<br>resolutionLevel에 따라 기본 해상도가 결정됩니다. |
| liveUrl | string | 방송 영상 원본 (m3u8) URL | 사용자의 네트워크 환경에 따라 해상도가 변경되는 영상의 URL입니다.<br>일반적으로 직접 이 값을 사용할 경우는 없습니다. |
| backgroundUrl | string | 배경 이미지 URL | 방송 진행중 송출이 일시적으로 중단되거나 사용자가 해상도 변경 과정에서 잠시 노출할 기분 배경 이미지입니다. 방송 상세에서 설정할 수 있습니다. |
| startedAt | timestamp(int64) | 방송 시작 시각 | timestamp in milliseconds |
### `종료됨` 상태일 때 다음의 정보가 추가로 세팅됩니다.
- CLOSED
| Name | Type | Description | Note |
| -------------------- | ---------------- | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| replayLiveUrl | string | 방송 다시보기 URL | 샵라이브 도메인에서 직접 제공하는, 종료된 방송의 다시보기 URL입니다.<br>스크립트를 embed하여 직접 구현하신 경우 동일한 랜딩 페이지에서 다시보기(리플레이)를 제공합니다. 방송 상세 설정에서 다시보기 제공 여부를 결정할 수 있습니다. |
| previewReplayLiveUrl | string | 방송 다시보기 영상의 미리보기 URL | 로고, 사용자수, 채팅 등을 제외한 **영상만** 제공할 경우에 필요한 HLS m3u8 URL 정보입니다.<br>resolutionLevel에 따라 기본 해상도가 결정됩니다. |
| poster2Url | string | 방송 종료 후 이미지 URL | 방송 종료 후 화면에 노출할 이미지입니다. |
| startedAt | timestamp(int64) | 방송 시작 시각 | timestamp in milliseconds |
| endedAt | timestamp(int64) | 방송 종료 시각 | timestamp in milliseconds |
# CampaignGoods <span id="CampaignGoods"></span>
- 방송에 등록한 상품 정보
| Name | Type | Description | Note |
| --------------------- | -------------------------------- | ------------------------------------ | --------------------------------------------------------- |
| campaignId | int64 | campaign id | 샵라이브에서 방송에 부여한 고유 id |
| goodsId | int64 | 상품 ID | 샵라이브에서 상품에 부여한 고유 id |
| name | string | 상품명 | |
| brand | string | 상품 브랜드명 | |
| description | string | 상품 설명 | |
| sku | string | 상품 코드 | |
| action | string | 상품 클릭 시 이벤트 | 현재 `LINK` 단일 값입니다.<br>클릭 시 payload json의 url로 이동합니다. |
| payload | json | 상품 클릭 시 이동할 URL 정보를 포함하는 json object | `{ "url" : "상품 URL" }` |
| medias | list\<[GoodsMedia](#GoodsMedia)> | 상품 이미지 정보 | List형태이지만 현재는 1개의 이미지만 지원합니다. |
| showingNow | bool | `NOW` 여부 | 방송 콘솔에서 상태를 변경할 수 있습니다. |
| salesStatus | string | 상품 판매 상태 | `ON_SALE` 판매중<br>`ALMOST_SOLD_OUT` 품절 임박<br>`SOLD_OUT` 품절 |
| originalPrice | double | 판매가 | |
| discountedPrice | double | 할인가 | |
| customOriginalPrice | string | 임의로 표시할 판매가 문자열 | 샵라이브 UI에 표시하기 위해 내부적으로 설정하는 값이며 현재 직접 설정할 수는 없습니다. |
| customDiscountedPrice | string | 임의로 표시할 할인가 문자열 | 샵라이브 UI에 표시하기 위해 내부적으로 설정하는 값이며 현재 직접 설정할 수는 없습니다. |
| discountPercentage | double | 할인율 | 임의의 할인율을 백분율 단위로 입력할 수 있습니다 (0.0~100.0). |
| currency | string | 통화 | `KRW` 원<br>`USD` 달러<br>... |
| traceId | string | 로깅용 ID | 클릭 로깅을 위한 hash ID |
# GoodsMedia <span id="GoodsMedia"></span>
- 상품 이미지 정보
| Name | Type | Description | Note |
| --------- | ------ | ----------- | ------------------ |
| id | int64 | 이미지 고유 ID | |
| mediaType | string | 미디어 타입 | 현재 `IMAGE`만 지원합니다. |
| url | string | 이미지 URL | |
| size | int64 | 이미지 크기 | |
| width | int32 | 이미지 너비 | |
| height | int32 | 이미지 높이 | |