feat(profile): add daily free chat and private message quotas to user profile response

This commit is contained in:
2026-07-03 16:57:43 +08:00
parent d17ab6c23d
commit 5124c32185
+144
View File
@@ -0,0 +1,144 @@
告诉前端这次只改了 GET /api/user/profile 的响应,新增每日免费额度信息,原有字段不变。
接口:GET https://api.cozsweet.com/api/user/profile
新增字段:
{
"dailyFreeChatLimit": 10,
"dailyFreeChatUsed": 0,
"dailyFreeChatRemaining": 10,
"dailyFreePrivateLimit": 0,
"dailyFreePrivateUsed": 0,
"dailyFreePrivateRemaining": 0,
"dailyQuotas": {
"chat": {
"limit": 10,
"used": 0,
"remaining": 10
},
"privateMessage": {
"limit": 0,
"used": 0,
"remaining": 0
}
}
}
含义:
dailyFreeChatLimit:今天免费聊天总次数
dailyFreeChatUsed:今天已用免费聊天次数
dailyFreeChatRemaining:今天剩余免费聊天次数
dailyFreePrivateLimit:今天免费私密消息总次数
dailyFreePrivateUsed:今天已用免费私密消息次数
dailyFreePrivateRemaining:今天剩余免费私密消息次数
dailyQuotas:同样数据的结构化版本,前端想用对象也可以直接用它
当前额度规则:
游客/未注册:聊天 10,私密 0
注册用户:聊天 30,私密 2
注意:
聊天优先消耗 dailyFreeChatRemaining
私密消息优先消耗 dailyFreePrivateRemaining
聊天剩余为 0 时,前端应阻止继续聊天或展示后端返回的额度用完提示
私密剩余为 0 时,前端不要展示私密内容,按锁定私密消息处理。
16:19
profile完整字段发给前端
16:20
发给前端这版:
GET https://api.cozsweet.com/api/user/profile
Authorization: Bearer <token>
完整响应结构:
interface ProfileResponse {
code: number;
message: string;
success: boolean;
data: UserProfile;
}
interface UserProfile {
id: string;
username: string;
email: string | null;
platform: string;
intimacy: number;
dolBalance: number;
creditBalance: number;
isTestAccount: boolean;
personalityTraits: Record<string, number> | null;
preferredLanguage: string | null;
createdAt: string | null;
lastMessageAt: string | null;
country: string | null;
countryCode: string | null;
dailyFreeChatLimit: number;
dailyFreeChatUsed: number;
dailyFreeChatRemaining: number;
dailyFreePrivateLimit: number;
dailyFreePrivateUsed: number;
dailyFreePrivateRemaining: number;
dailyQuotas: {
chat: {
limit: number;
used: number;
remaining: number;
};
privateMessage: {
limit: number;
used: number;
remaining: number;
};
};
}
示例:
{
"code": 200,
"message": "success",
"success": true,
"data": {
"id": "user-id",
"username": "guest_codex",
"email": "device_xxx@guest.local",
"platform": "web",
"intimacy": 0,
"dolBalance": 0,
"creditBalance": 0,
"isTestAccount": false,
"personalityTraits": {
"caring": 0.5,
"playful": 0.5,
"serious": 0.5,
"cheerful": 0.5,
"romantic": 0.5
},
"preferredLanguage": "ja",
"createdAt": "2026-07-03T16:12:01.591264+08:00",
"lastMessageAt": null,
"country": "Japan",
"countryCode": "JP",
"dailyFreeChatLimit": 10,
"dailyFreeChatUsed": 0,
"dailyFreeChatRemaining": 10,
"dailyFreePrivateLimit": 0,
"dailyFreePrivateUsed": 0,
"dailyFreePrivateRemaining": 0,
"dailyQuotas": {
"chat": {
"limit": 10,
"used": 0,
"remaining": 10
},
"privateMessage": {
"limit": 0,
"used": 0,
"remaining": 0
}
}
}
}
额度规则:
游客:dailyFreeChatLimit = 10dailyFreePrivateLimit = 0
注册用户:dailyFreeChatLimit = 30dailyFreePrivateLimit = 2