> For the complete documentation index, see [llms.txt](/llms.txt)

# GS2-Money2 마스터 데이터 레퍼런스

마스터 데이터 포맷과 임포트할 각종 모델의 레퍼런스




## 마스터 데이터 포맷


**JSON**
```json
{
  "version": "2024-06-20",
  "storeContentModels": [
    {
      "name": "[string]스토어 콘텐츠 모델 이름",
      "metadata": "[string?]메타데이터",
      "appleAppStore": {
        "productId": "[string?]프로덕트 ID"
      },
      "googlePlay": {
        "productId": "[string?]프로덕트 ID"
      }
    }
  ],
  "storeSubscriptionContentModels": [
    {
      "name": "[string]스토어 구독 콘텐츠 모델 이름",
      "metadata": "[string?]메타데이터",
      "scheduleNamespaceId": "[string]구독 기간을 연동시킬 GS2-Schedule의 네임스페이스 GRN",
      "triggerName": "[string]구독 기간을 반영하는 트리거 이름",
      "triggerExtendMode": "[문자열 열거형]구독 기간을 트리거에 반영할 때의 모드",
      "rollupHour": "[int]날짜 변경 시각(UTC)",
      "reallocateSpanDays": "[int]구독 계약 정보를 다른 사용자에게 할당할 수 있게 되는 기간(일)",
      "appleAppStore": {
        "subscriptionGroupIdentifier": "[string?]구독 그룹 ID"
      },
      "googlePlay": {
        "productId": "[string?]프로덕트 ID"
      }
    }
  ]
}
```


|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| version | string | | ✓ | 2024-06-20 | | 마스터 데이터 포맷 버전 |
| storeContentModels | [List&lt;StoreContentModel&gt;](#storecontentmodel) |  |  |  |  ~ 1000 items | 스토어 콘텐츠 모델<br>다양한 스토어 플랫폼의 콘텐츠를 저장하는 모델입니다. |
| storeSubscriptionContentModels | [List&lt;StoreSubscriptionContentModel&gt;](#storesubscriptioncontentmodel) |  |  |  |  ~ 1000 items | 스토어 구독 콘텐츠 모델<br>다양한 스토어 플랫폼의 구독 콘텐츠를 저장하는 모델입니다. |

## 모델

### StoreContentModel

스토어 콘텐츠 모델<br>

다양한 스토어 플랫폼의 콘텐츠를 저장하는 모델입니다.

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| storeContentModelId | string |  | ※ |  |  ~ 1024자 | 스토어 콘텐츠 모델 GRN<br>※ 서버가 자동으로 설정 |
| name | string |  | ✓ |  |  ~ 128자 | 스토어 콘텐츠 모델 이름 |
| metadata | string |  |  |  |  ~ 1024자 | 메타데이터<br>메타데이터에는 임의의 값을 설정할 수 있습니다.<br>이 값들은 GS2의 동작에는 영향을 주지 않으므로, 게임 내에서 사용하는 정보를 저장하는 용도로 사용할 수 있습니다. |
| appleAppStore | [AppleAppStoreContent](#appleappstorecontent) |  |  |  |  | Apple App Store의 콘텐츠<br>이 스토어 콘텐츠의 Apple App Store 상품 정보(프로덕트 ID)입니다. 영수증 검증 시 구매한 상품과의 대조에 사용됩니다. |
| googlePlay | [GooglePlayContent](#googleplaycontent) |  |  |  |  | Google Play의 콘텐츠<br>이 스토어 콘텐츠의 Google Play 상품 정보(프로덕트 ID)입니다. 영수증 검증 시 구매한 상품과의 대조에 사용됩니다. |

---

### AppleAppStoreContent

Apple App Store의 콘텐츠<br>

인앱 결제 상품에 대응하는 Apple App Store의 프로덕트 ID를 포함합니다. 영수증 검증 시 대조에 사용됩니다.

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| productId | string |  |  |  |  ~ 1024자 | 프로덕트 ID<br>이 인앱 결제 아이템에 대해 App Store Connect에 등록된 Apple App Store의 프로덕트 식별자입니다. |

---

### GooglePlayContent

Google Play의 콘텐츠<br>

인앱 결제 상품에 대응하는 Google Play의 프로덕트 ID를 포함합니다. 영수증 검증 시 대조에 사용됩니다.

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| productId | string |  |  |  |  ~ 1024자 | 프로덕트 ID<br>이 인앱 결제 아이템에 대해 Google Play Console에 등록되어 있는 Google Play의 프로덕트 식별자입니다. |

---

### StoreSubscriptionContentModel

스토어 구독 콘텐츠 모델<br>

다양한 스토어 플랫폼의 구독 콘텐츠를 저장하는 모델입니다.

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| storeSubscriptionContentModelId | string |  | ※ |  |  ~ 1024자 | 구독 콘텐츠 모델 GRN<br>※ 서버가 자동으로 설정 |
| name | string |  | ✓ |  |  ~ 128자 | 스토어 구독 콘텐츠 모델 이름 |
| metadata | string |  |  |  |  ~ 1024자 | 메타데이터 |
| scheduleNamespaceId | string |  | ✓ |  |  ~ 1024자 | 구독 기간을 연동시킬 GS2-Schedule의 네임스페이스 GRN |
| triggerName | string |  | ✓ |  |  ~ 128자 | 구독 기간을 반영하는 트리거 이름<br>구독의 유효 기간을 반영하기 위해 실행되는 GS2-Schedule의 트리거 이름입니다. 트리거의 지속 시간은 구독의 유효 기한으로 설정됩니다. |
| triggerExtendMode | 문자열 열거형<br>enum {<br>"just",<br>"rollupHour"<br>}<br> |  |  | "just" |  | 구독 기간을 트리거에 반영할 때의 모드<br>구독의 유효 기한을 트리거의 지속 시간에 어떻게 매핑할지를 제어합니다. "just"는 구독 기간을 그대로 사용합니다. "rollupHour"는 지정한 시각(UTC)까지 연장하여 하루 중간에 만료되는 것을 방지합니다.just: 그대로 구독 기간을 반영 / rollupHour: 다음 날짜 변경 시각까지 연장하여 구독 기간을 반영 /  |
| rollupHour | int | {triggerExtendMode} == "rollupHour" |  | 0 | 0 ~ 23 | 날짜 변경 시각(UTC)<br>triggerExtendMode가 "rollupHour"인 경우, 구독 기간은 유효 기한일의 이 시각(0~23, UTC)까지 연장됩니다. 사용자의 플레이 세션 중에 구독이 만료되는 것을 방지합니다.<br>※ triggerExtendMode이(가) "rollupHour" 이면 활성화 |
| reallocateSpanDays | int |  |  | 30 | 0 ~ 365 | 구독 계약 정보를 다른 사용자에게 할당할 수 있게 되는 기간(일)<br>마지막 할당 이후, 구독 계약을 다른 사용자에게 재할당할 수 있게 되기까지의 일수입니다. 사용자가 계정을 변경할 때의 부정 이용을 방지하기 위해 구독 이전에 대기 기간을 둡니다. |
| appleAppStore | [AppleAppStoreSubscriptionContent](#appleappstoresubscriptioncontent) |  |  |  |  | Apple App Store 콘텐츠<br>이 구독 콘텐츠의 Apple App Store 구독 정보(구독 그룹 ID)입니다. |
| googlePlay | [GooglePlaySubscriptionContent](#googleplaysubscriptioncontent) |  |  |  |  | Google Play 콘텐츠<br>이 구독 콘텐츠의 Google Play 구독 정보(프로덕트 ID)입니다. |

---

### AppleAppStoreSubscriptionContent

Apple App Store의 기간 결제 콘텐츠<br>

구독 기반 상품의 Apple App Store 구독 그룹 식별자를 포함합니다. 자동 갱신 구독의 관리와 검증에 사용됩니다.

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| subscriptionGroupIdentifier | string |  |  |  |  ~ 64자 | 구독 그룹 ID<br>App Store Connect에 등록된 구독 그룹 식별자입니다. 동일 그룹 내의 구독은 상호 배타적이며, 사용자는 동시에 하나만 계약할 수 있습니다. |

---

### GooglePlaySubscriptionContent

Google Play 구독 콘텐츠<br>

구독 기반 상품의 Google Play 프로덕트 ID를 포함합니다. Google Play에서 자동 갱신 구독을 관리하고 검증하는 데 사용됩니다.

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| productId | string |  |  |  |  ~ 1024자 | 프로덕트 ID |

---



