{
	"info": {
		"_postman_id": "12fb15d1-e969-462d-8483-210e32520954",
		"name": "InsureMO_EasyPA",
		"description": "InsureMO EasyPA Collection (New Business + Endorsement)",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
	},
	"item": [
		{
			"name": "New Business",
			"item": [
				{
					"name": "00、get token",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"tests[\"response code is 200\"] = responseCode.code === 200;",
									"",
									"var jsonData = JSON.parse(responseBody);",
									"var bar = jsonData.access_token;",
									"postman.setEnvironmentVariable(\"access_token\", bar);",
									""
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							},
							{
								"key": "x-ebao-tenant-code",
								"value": "ebaogi"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n\t\"username\":\"{{username}}\",\n\t\"password\":\"{{password}}\"\n}"
						},
						"url": {
							"raw": "{{server}}/v1/json/tickets",
							"host": [
								"{{server}}"
							],
							"path": [
								"v1",
								"json",
								"tickets"
							]
						}
					},
					"response": []
				},
				{
					"name": "01、Create Proposal",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"tests[\"response code is 200\"] = responseCode.code === 200;",
									"if (responseCode.code == 200) {",
									"    var responseJSONData = JSON.parse(responseBody);",
									"    postman.setEnvironmentVariable(\"ProposalNo\", responseJSONData.ProposalNo);",
									"    postman.setEnvironmentVariable(\"policyInfo\", responseBody);",
									"    postman.setEnvironmentVariable(\"PolicyId\", responseJSONData.PolicyId);",
									"    ",
									"} else {",
									"    tests[\"response is \" + responseBody] = responseCode.code !== 200;",
									"}",
									"",
									""
								],
								"type": "text/javascript"
							}
						},
						{
							"listen": "prerequest",
							"script": {
								"exec": [
									"var effectiveTimestamp = new Date().setDate(new Date().getDate() - 7);\r",
									"var effectiveDate = new Date(effectiveTimestamp);\r",
									"var effectiveDateString = effectiveDate.getFullYear() + \"-\" + ((effectiveDate.getMonth() + 1) >= 10 ? (effectiveDate.getMonth() + 1) : (\"0\" + (effectiveDate.getMonth() + 1))) + \"-\" + ((effectiveDate.getDate() + \"\").length == 2 ? effectiveDate.getDate() : (\"0\" + effectiveDate.getDate()));\r",
									"\r",
									"var expiryTimestamp = new Date().setDate(new Date().getDate() + 7);\r",
									"var expiryDate = new Date(expiryTimestamp);\r",
									"var expiryDateString = expiryDate.getFullYear() + \"-\" + ((expiryDate.getMonth() + 1) >= 10 ? (expiryDate.getMonth() + 1) : (\"0\" + (expiryDate.getMonth() + 1))) + \"-\" + ((expiryDate.getDate() + \"\").length == 2 ? expiryDate.getDate() : (\"0\" + expiryDate.getDate()));\r",
									"\r",
									"var nowDate = new Date();\r",
									"var nowDateString = nowDate.getFullYear() + \"-\" + ((nowDate.getMonth() + 1) >= 10 ? (nowDate.getMonth() + 1) : (\"0\" + (nowDate.getMonth() + 1))) + \"-\" + ((nowDate.getDate() + \"\").length == 2 ? nowDate.getDate() : (\"0\" + nowDate.getDate()));\r",
									"\r",
									"postman.setEnvironmentVariable(\"EffectiveDate\", effectiveDateString);\r",
									"postman.setEnvironmentVariable(\"ExpiryDate\", expiryDateString);\r",
									"postman.setEnvironmentVariable(\"NowDate\", nowDateString);"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							},
							{
								"key": "Authorization",
								"value": "Bearer {{access_token}}"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"ProductCode\": \"TBTI\",\n    \"ProductVersion\": \"1.0\",\n    \"ProposalDate\": \"{{NowDate}}\",\n    \"EffectiveDate\": \"{{EffectiveDate}}\",\n    \"ExpiryDate\": \"{{ExpiryDate}}\",\n    \"BookCurrencyCode\": \"SGD\",\n    \"PremiumCurrencyCode\": \"SGD\",\n    \"OrgCode\": \"10001\",\n    \"LocalCurrencyCode\": \"SGD\",\n    \"PremiumBookExchangeRate\": 1,\n    \"PremiumLocalExchangeRate\": 1,\n    \"PolicyPaymentInfoList\": [\n        {\n            \"PayModeCode\": \"30\",\n            \"IsInstallment\": \"Y\",\n            \"InstallmentType\": 1\n        }\n    ],\n    \"PolicyCustomerList\": [\n        {\n            \"CustomerName\": \"Alice\",\n            \"DateOfBirth\": \"1988-06-08\",\n            \"IdNo\": \"888666888\",\n            \"IdType\": \"1\",\n            \"Gender\": \"F\",\n            \"IsOrgParty\": \"N\",\n            \"CustomerType\": \"IndiCustomer\",\n            \"IsPolicyHolder\": \"Y\"\n        }\n    ],\n    \"PolicyLobList\": [\n        {\n            \"PolicyRiskList\": [\n                {\n                    \"RiskName\": \"Alice\",\n                    \"IdNo\": \"888666888\",\n                    \"IdType\": \"1\",\n                    \"DateOfBirth\": \"1988-10-01\",\n                    \"PolicyCoverageList\": [\n                        {\n                            \"ProductElementCode\": \"C100416\",\n                            \"SumInsured\": 300000,\n                            \"PolicyBenefitList\": [\n                                {\n                                    \"ProductElementCode\": \"B00248\"\n                                }\n                            ]\n                        },\n                        {\n                            \"ProductElementCode\": \"C100692\",\n                            \"SumInsured\": 300000\n                        },\n                        {\n                            \"ProductElementCode\": \"C101392\",\n                            \"SumInsured\": 150000\n                        }\n                    ],\n                    \"ProductElementCode\": \"R10007\"\n                    \n                }\n            ],\n            \"ProductCode\": \"TBTI\"\n            \n        }\n    ]\n}"
						},
						"url": {
							"raw": "{{server}}/proposal/core/proposal/v1/createEx",
							"host": [
								"{{server}}"
							],
							"path": [
								"proposal",
								"v1",
								"create"
							]
						}
					},
					"response": []
				},
				{
					"name": "02、Proposal Save",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"tests[\"response code is 200\"] = responseCode.code === 200;",
									"if(responseCode.code == 200){",
									"   postman.setEnvironmentVariable(\"policyInfo\", responseBody);",
									"}else{",
									"    tests[\"response is \"+ responseBody] =responseCode.code  !== 200;",
									"}",
									""
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							},
							{
								"key": "Authorization",
								"value": "Bearer {{access_token}}"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{{policyInfo}}"
						},
						"url": {
							"raw": "{{server}}/proposal/core/proposal/v1/updateEx",
							"host": [
								"{{server}}"
							],
							"path": [
								"proposal",
								"v1",
								"save"
							]
						}
					},
					"response": []
				},
				{
					"name": "03、Proposal Validate",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									""
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							},
							{
								"key": "Authorization",
								"value": "Bearer {{access_token}}"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{{policyInfo}}"
						},
						"url": {
							"raw": "{{server}}/proposal/core/proposal/v1/validate",
							"host": [
								"{{server}}"
							],
							"path": [
								"proposal",
								"v1",
								"validate"
							]
						}
					},
					"response": []
				},
				{
					"name": "04、Proposal Calculate",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"tests[\"response code is 200\"] = responseCode.code === 200;",
									"if(responseCode.code == 200){",
									"  var responseJSONData = JSON.parse(responseBody);",
									"  postman.setEnvironmentVariable(\"ProposalNo\", responseJSONData.ProposalNo);",
									"  postman.setEnvironmentVariable(\"policyInfo\", responseBody);",
									"}else{",
									"  tests[\"response is \"+ responseBody] =responseCode.code  !== 200;  ",
									"}",
									""
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							},
							{
								"key": "Authorization",
								"value": "Bearer {{access_token}}"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{{policyInfo}}"
						},
						"url": {
							"raw": "{{server}}/proposal/core/proposal/v1/calculate",
							"host": [
								"{{server}}"
							],
							"path": [
								"proposal",
								"v1",
								"calculate"
							]
						}
					},
					"response": []
				},
				{
					"name": "05、Proposal underwriting",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"tests[\"response code is 200\"] = responseCode.code === 200;",
									"if(responseCode.code == 200){",
									" postman.setEnvironmentVariable(\"policyInfo\", responseBody);",
									"}else{",
									"    tests[\"response is \"+ responseBody] =responseCode.code  !== 200;",
									"}",
									""
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							},
							{
								"key": "Authorization",
								"value": "Bearer {{access_token}}"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{{policyInfo}}"
						},
						"url": {
							"raw": "{{server}}/proposal/core/proposal/v1/autoUnderWriting?eventCode=UnderwritingRuleCheck",
							"host": [
								"{{server}}"
							],
							"path": [
								"proposal",
								"v1",
								"underwriting"
							],
							"query": [
								{
									"key": "eventCode",
									"value": "UnderwritingRuleCheck"
								}
							]
						}
					},
					"response": []
				},
				{
					"name": "06、Proposal Issue",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"tests[\"response code is 200\"] = responseCode.code === 200;\r",
									"if(responseCode.code == 200){\r",
									"  var responseJSONData = JSON.parse(responseBody);\r",
									"  postman.setEnvironmentVariable(\"PolicyNo\", responseJSONData.PolicyNo);\r",
									"  postman.setEnvironmentVariable(\"PolicyId\", responseJSONData.PolicyId);\r",
									"}else{\r",
									"    tests[\"response is \"+ responseBody] =responseCode.code  !== 200;\r",
									"}\r",
									""
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							},
							{
								"key": "Authorization",
								"value": "Bearer {{access_token}}"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n\t\"ProposalNo\": \"{{ProposalNo}}\"\n}"
						},
						"url": {
							"raw": "{{server}}/proposal/core/proposal/v1/issuePolicyEx",
							"host": [
								"{{server}}"
							],
							"path": [
								"proposal",
								"v1",
								"issuePolicy"
							]
						}
					},
					"response": []
				},
				{
					"name": "07、Load Policy",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"tests[\"response code is 200\"] = responseCode.code === 200;",
									"var responseJSONData = JSON.parse(responseBody);",
									"var newpolicy = JSON.stringify(responseJSONData)",
									"postman.setEnvironmentVariable(\"newpolicy\", newpolicy);",
									"tests[\"newpolicy is \" + JSON.stringify(newpolicy)] = responseCode.code === 200;",
									""
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							},
							{
								"key": "Authorization",
								"value": "Bearer {{access_token}}"
							}
						],
						"url": {
							"raw": "{{server}}/proposal/core/proposal/v1/load?policyNo={{PolicyNo}}",
							"host": [
								"{{server}}"
							],
							"path": [
								"proposal",
								"v1",
								"load"
							],
							"query": [
								{
									"key": "policyNo",
									"value": "{{PolicyNo}}"
								}
							]
						}
					},
					"response": []
				}
			],
			"description": "New Business & Basic Information Endorsement",
			"event": [
				{
					"listen": "prerequest",
					"script": {
						"type": "text/javascript",
						"exec": [
							""
						]
					}
				},
				{
					"listen": "test",
					"script": {
						"type": "text/javascript",
						"exec": [
							""
						]
					}
				}
			]
		}
	]
}