feat(chat): migrate chat protocol to lock detail
This commit is contained in:
@@ -6,33 +6,65 @@
|
||||
"messages": [
|
||||
{
|
||||
"role": "user",
|
||||
"type": "text",
|
||||
"content": "I had a long day.",
|
||||
"id": "msg_user_001",
|
||||
"created_at": "2026-06-23T02:10:00.000Z",
|
||||
"isPrivate": false,
|
||||
"privateLocked": false,
|
||||
"privateHint": null,
|
||||
"image_url": null
|
||||
"audioUrl": null,
|
||||
"image": {
|
||||
"type": null,
|
||||
"url": null
|
||||
},
|
||||
"lockDetail": {
|
||||
"locked": false,
|
||||
"showContent": true,
|
||||
"showUpgrade": false,
|
||||
"reason": null,
|
||||
"hint": null,
|
||||
"detail": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "assistant",
|
||||
"type": "text",
|
||||
"content": "Come here. Tell me everything, slowly.",
|
||||
"id": "msg_ai_001",
|
||||
"created_at": "2026-06-23T02:10:05.000Z",
|
||||
"isPrivate": false,
|
||||
"privateLocked": false,
|
||||
"privateHint": null,
|
||||
"image_url": null
|
||||
"audioUrl": null,
|
||||
"image": {
|
||||
"type": null,
|
||||
"url": null
|
||||
},
|
||||
"lockDetail": {
|
||||
"locked": false,
|
||||
"showContent": true,
|
||||
"showUpgrade": false,
|
||||
"reason": null,
|
||||
"hint": null,
|
||||
"detail": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "assistant",
|
||||
"type": "text",
|
||||
"content": "",
|
||||
"id": "msg_private_locked_001",
|
||||
"created_at": "2026-06-23T02:11:12.000Z",
|
||||
"isPrivate": true,
|
||||
"privateLocked": true,
|
||||
"privateHint": "Elio has a private message for you.",
|
||||
"image_url": null
|
||||
"audioUrl": null,
|
||||
"image": {
|
||||
"type": null,
|
||||
"url": null
|
||||
},
|
||||
"lockDetail": {
|
||||
"locked": true,
|
||||
"showContent": false,
|
||||
"showUpgrade": true,
|
||||
"reason": "private_message",
|
||||
"hint": "Elio has a private message for you.",
|
||||
"detail": {
|
||||
"messageId": "msg_private_locked_001"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"total": 3,
|
||||
|
||||
@@ -6,33 +6,63 @@
|
||||
"messages": [
|
||||
{
|
||||
"role": "user",
|
||||
"type": "text",
|
||||
"content": "I had a long day.",
|
||||
"id": "msg_user_001",
|
||||
"created_at": "2026-06-23T02:10:00.000Z",
|
||||
"isPrivate": false,
|
||||
"privateLocked": false,
|
||||
"privateHint": null,
|
||||
"image_url": null
|
||||
"audioUrl": null,
|
||||
"image": {
|
||||
"type": null,
|
||||
"url": null
|
||||
},
|
||||
"lockDetail": {
|
||||
"locked": false,
|
||||
"showContent": true,
|
||||
"showUpgrade": false,
|
||||
"reason": null,
|
||||
"hint": null,
|
||||
"detail": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "assistant",
|
||||
"type": "text",
|
||||
"content": "I saved this softer thought for you, just between us.",
|
||||
"id": "msg_private_unlocked_001",
|
||||
"created_at": "2026-06-23T02:11:12.000Z",
|
||||
"isPrivate": true,
|
||||
"privateLocked": false,
|
||||
"privateHint": null,
|
||||
"image_url": null
|
||||
"audioUrl": null,
|
||||
"image": {
|
||||
"type": null,
|
||||
"url": null
|
||||
},
|
||||
"lockDetail": {
|
||||
"locked": false,
|
||||
"showContent": true,
|
||||
"showUpgrade": false,
|
||||
"reason": null,
|
||||
"hint": null,
|
||||
"detail": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "assistant",
|
||||
"type": "text",
|
||||
"content": "",
|
||||
"id": "msg_ai_image_001",
|
||||
"created_at": "2026-06-23T02:12:28.000Z",
|
||||
"isPrivate": false,
|
||||
"privateLocked": false,
|
||||
"privateHint": null,
|
||||
"image_url": "https://cdn.cozsweet.com/mock/chat/elio-schedule-001.jpg"
|
||||
"audioUrl": null,
|
||||
"image": {
|
||||
"type": "elio_schedule",
|
||||
"url": "https://cdn.cozsweet.com/mock/chat/elio-schedule-001.jpg"
|
||||
},
|
||||
"lockDetail": {
|
||||
"locked": false,
|
||||
"showContent": true,
|
||||
"showUpgrade": false,
|
||||
"reason": null,
|
||||
"hint": null,
|
||||
"detail": null
|
||||
}
|
||||
}
|
||||
],
|
||||
"total": 3,
|
||||
|
||||
@@ -3,27 +3,26 @@
|
||||
"message": "success",
|
||||
"success": true,
|
||||
"data": {
|
||||
"mode": "http",
|
||||
"reply": "",
|
||||
"voiceUrl": "",
|
||||
"audioUrl": "",
|
||||
"intimacyChange": 0,
|
||||
"newIntimacy": 42,
|
||||
"relationshipStage": "close_friend",
|
||||
"currentMood": "",
|
||||
"messageId": "msg_blocked_daily_001",
|
||||
"isGuest": false,
|
||||
"timestamp": 1782180665000,
|
||||
"blocked": true,
|
||||
"blockReason": "daily_limit",
|
||||
"blockDetail": {
|
||||
"type": "daily_limit",
|
||||
"usedToday": 20,
|
||||
"limit": 20
|
||||
"image": {
|
||||
"type": null,
|
||||
"url": null
|
||||
},
|
||||
"paywallTriggered": false,
|
||||
"showUpgrade": false,
|
||||
"imageType": null,
|
||||
"imageUrl": null
|
||||
"lockDetail": {
|
||||
"locked": true,
|
||||
"showContent": false,
|
||||
"showUpgrade": true,
|
||||
"reason": "daily_limit",
|
||||
"hint": "免费消息额度已用完,开通会员后可以继续聊天。",
|
||||
"detail": {
|
||||
"type": "daily_msg_limit",
|
||||
"usedToday": 20,
|
||||
"limit": 20
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,23 +3,22 @@
|
||||
"message": "success",
|
||||
"success": true,
|
||||
"data": {
|
||||
"mode": "http",
|
||||
"reply": "I can show you that photo after you activate VIP.",
|
||||
"voiceUrl": "",
|
||||
"audioUrl": "",
|
||||
"intimacyChange": 0,
|
||||
"newIntimacy": 42,
|
||||
"relationshipStage": "close_friend",
|
||||
"currentMood": "playful",
|
||||
"messageId": "msg_photo_paywall_001",
|
||||
"isGuest": false,
|
||||
"timestamp": 1782180725000,
|
||||
"blocked": null,
|
||||
"blockReason": null,
|
||||
"blockDetail": null,
|
||||
"paywallTriggered": true,
|
||||
"showUpgrade": true,
|
||||
"imageType": null,
|
||||
"imageUrl": null
|
||||
"image": {
|
||||
"type": "elio_schedule",
|
||||
"url": "https://cdn.cozsweet.com/mock/chat/elio-schedule-locked.jpg"
|
||||
},
|
||||
"lockDetail": {
|
||||
"locked": true,
|
||||
"showContent": true,
|
||||
"showUpgrade": true,
|
||||
"reason": "image",
|
||||
"hint": "Activate VIP to unlock the full photo.",
|
||||
"detail": null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,23 +3,22 @@
|
||||
"message": "success",
|
||||
"success": true,
|
||||
"data": {
|
||||
"mode": "http",
|
||||
"reply": "I am here. Tell me what happened, one small piece at a time.",
|
||||
"voiceUrl": "",
|
||||
"audioUrl": "",
|
||||
"intimacyChange": 0,
|
||||
"newIntimacy": 42,
|
||||
"relationshipStage": "close_friend",
|
||||
"currentMood": "gentle",
|
||||
"messageId": "msg_ai_reply_001",
|
||||
"isGuest": false,
|
||||
"timestamp": 1782180605000,
|
||||
"blocked": null,
|
||||
"blockReason": null,
|
||||
"blockDetail": null,
|
||||
"paywallTriggered": false,
|
||||
"showUpgrade": false,
|
||||
"imageType": null,
|
||||
"imageUrl": null
|
||||
"image": {
|
||||
"type": null,
|
||||
"url": null
|
||||
},
|
||||
"lockDetail": {
|
||||
"locked": false,
|
||||
"showContent": true,
|
||||
"showUpgrade": false,
|
||||
"reason": null,
|
||||
"hint": null,
|
||||
"detail": null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,28 +3,26 @@
|
||||
"message": "success",
|
||||
"success": true,
|
||||
"data": {
|
||||
"mode": "http",
|
||||
"type": "text",
|
||||
"reply": "",
|
||||
"voiceUrl": "",
|
||||
"audioUrl": "",
|
||||
"intimacyChange": 0,
|
||||
"newIntimacy": 0,
|
||||
"relationshipStage": "密友",
|
||||
"currentMood": "happy",
|
||||
"messageId": "",
|
||||
"isGuest": true,
|
||||
"timestamp": 1782197944984,
|
||||
"blocked": true,
|
||||
"blockReason": "total_limit",
|
||||
"blockDetail": {
|
||||
"type": "guest_total_msg_limit",
|
||||
"usedTotal": 12,
|
||||
"limit": 5
|
||||
"image": {
|
||||
"type": null,
|
||||
"url": null
|
||||
},
|
||||
"paywallTriggered": false,
|
||||
"showUpgrade": false,
|
||||
"imageType": null,
|
||||
"imageUrl": null
|
||||
"lockDetail": {
|
||||
"locked": true,
|
||||
"showContent": false,
|
||||
"showUpgrade": true,
|
||||
"reason": "daily_limit",
|
||||
"hint": "Log in to get more free chat messages.",
|
||||
"detail": {
|
||||
"type": "daily_msg_limit",
|
||||
"usedToday": 5,
|
||||
"limit": 5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,23 +3,22 @@
|
||||
"message": "success",
|
||||
"success": true,
|
||||
"data": {
|
||||
"mode": "http",
|
||||
"reply": "This is the kind of view I would want to share with you.",
|
||||
"voiceUrl": "",
|
||||
"audioUrl": "",
|
||||
"intimacyChange": 0,
|
||||
"newIntimacy": 43,
|
||||
"relationshipStage": "close_friend",
|
||||
"currentMood": "warm",
|
||||
"messageId": "msg_ai_image_reply_001",
|
||||
"isGuest": false,
|
||||
"timestamp": 1782180785000,
|
||||
"blocked": null,
|
||||
"blockReason": null,
|
||||
"blockDetail": null,
|
||||
"paywallTriggered": false,
|
||||
"showUpgrade": false,
|
||||
"imageType": "elio_schedule",
|
||||
"imageUrl": "https://cdn.cozsweet.com/mock/chat/elio-schedule-001.jpg"
|
||||
"image": {
|
||||
"type": "elio_schedule",
|
||||
"url": "https://cdn.cozsweet.com/mock/chat/elio-schedule-001.jpg"
|
||||
},
|
||||
"lockDetail": {
|
||||
"locked": false,
|
||||
"showContent": true,
|
||||
"showUpgrade": false,
|
||||
"reason": null,
|
||||
"hint": null,
|
||||
"detail": null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"type": "image",
|
||||
"data": {
|
||||
"imageUrl": "https://cdn.cozsweet.com/mock/chat/elio-schedule-001.jpg"
|
||||
"image": {
|
||||
"type": "elio_schedule",
|
||||
"url": "https://cdn.cozsweet.com/mock/chat/elio-schedule-001.jpg"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,17 @@
|
||||
{
|
||||
"type": "paywall_status",
|
||||
"data": {
|
||||
"paywallTriggered": true,
|
||||
"showUpgrade": true,
|
||||
"imageType": null,
|
||||
"imageUrl": null
|
||||
"lockDetail": {
|
||||
"locked": true,
|
||||
"showContent": false,
|
||||
"showUpgrade": true,
|
||||
"reason": "daily_limit",
|
||||
"hint": "免费消息额度已用完,开通会员后可以继续聊天。",
|
||||
"detail": {
|
||||
"type": "daily_msg_limit",
|
||||
"usedToday": 20,
|
||||
"limit": 20
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user