人生轨迹功能模块补充

This commit is contained in:
2025-12-22 14:50:14 +08:00
parent fa57938a9d
commit cd6d995d5a
48 changed files with 5359 additions and 316 deletions
@@ -0,0 +1,71 @@
package com.emotion.dto.request;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.Map;
/**
* 爽文剧本创建请求
*
* @author huazhongmin
* @date 2025-12-22
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class EpicScriptCreateRequest extends BaseRequest {
/**
* 剧本标题
*/
@NotBlank(message = "剧本标题不能为空")
@Size(max = 200, message = "剧本标题长度不能超过200个字符")
private String title;
/**
* 剧本主题/渴望
*/
private String theme;
/**
* 剧本风格: career-职场逆袭, love-情感圆满, fantasy-玄幻觉醒
*/
private String style;
/**
* 篇幅长度: medium-标准篇, long-长篇
*/
private String length;
/**
* 序幕:低谷回响
*/
private String plotIntro;
/**
* 转折:契机出现
*/
private String plotTurning;
/**
* 高潮:命运抉择
*/
private String plotClimax;
/**
* 结局:新的开始
*/
private String plotEnding;
/**
* 完整剧情JSON结构
*/
private Map<String, Object> plotJson;
/**
* 是否当前选中
*/
private Boolean isSelected;
}
@@ -0,0 +1,26 @@
package com.emotion.dto.request;
import com.emotion.common.BasePageRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 爽文剧本分页查询请求
*
* @author huazhongmin
* @date 2025-12-22
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class EpicScriptPageRequest extends BasePageRequest {
/**
* 剧本风格筛选
*/
private String style;
/**
* 篇幅长度筛选
*/
private String length;
}
@@ -0,0 +1,76 @@
package com.emotion.dto.request;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.Map;
/**
* 爽文剧本更新请求
*
* @author huazhongmin
* @date 2025-12-22
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class EpicScriptUpdateRequest extends BaseRequest {
/**
* 剧本ID
*/
@NotBlank(message = "剧本ID不能为空")
private String id;
/**
* 剧本标题
*/
@Size(max = 200, message = "剧本标题长度不能超过200个字符")
private String title;
/**
* 剧本主题/渴望
*/
private String theme;
/**
* 剧本风格: career-职场逆袭, love-情感圆满, fantasy-玄幻觉醒
*/
private String style;
/**
* 篇幅长度: medium-标准篇, long-长篇
*/
private String length;
/**
* 序幕:低谷回响
*/
private String plotIntro;
/**
* 转折:契机出现
*/
private String plotTurning;
/**
* 高潮:命运抉择
*/
private String plotClimax;
/**
* 结局:新的开始
*/
private String plotEnding;
/**
* 完整剧情JSON结构
*/
private Map<String, Object> plotJson;
/**
* 是否当前选中
*/
private Boolean isSelected;
}
@@ -0,0 +1,62 @@
package com.emotion.dto.request;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.List;
/**
* 生命事件创建请求
*
* @author huazhongmin
* @date 2025-12-22
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class LifeEventCreateRequest extends BaseRequest {
/**
* 事件类型: daily_log-日常记录, milestone-里程碑
*/
private String eventType;
/**
* 事件日期 (ISO格式字符串)
*/
private String eventDate;
/**
* 事件标题
*/
@NotBlank(message = "事件标题不能为空")
@Size(max = 200, message = "事件标题长度不能超过200个字符")
private String title;
/**
* 事件内容
*/
@NotBlank(message = "事件内容不能为空")
private String content;
/**
* AI疗愈回复
*/
private String aiReply;
/**
* 情绪类型
*/
private String emotionType;
/**
* 情绪评分
*/
private Double emotionScore;
/**
* 标签列表
*/
private List<String> tags;
}
@@ -0,0 +1,36 @@
package com.emotion.dto.request;
import com.emotion.common.BasePageRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 生命事件分页查询请求
*
* @author huazhongmin
* @date 2025-12-22
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class LifeEventPageRequest extends BasePageRequest {
/**
* 事件类型筛选
*/
private String eventType;
/**
* 开始日期
*/
private String startDate;
/**
* 结束日期
*/
private String endDate;
/**
* 情绪类型筛选
*/
private String emotionType;
}
@@ -0,0 +1,66 @@
package com.emotion.dto.request;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.List;
/**
* 生命事件更新请求
*
* @author huazhongmin
* @date 2025-12-22
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class LifeEventUpdateRequest extends BaseRequest {
/**
* 事件ID
*/
@NotBlank(message = "事件ID不能为空")
private String id;
/**
* 事件类型: daily_log-日常记录, milestone-里程碑
*/
private String eventType;
/**
* 事件日期 (ISO格式字符串)
*/
private String eventDate;
/**
* 事件标题
*/
@Size(max = 200, message = "事件标题长度不能超过200个字符")
private String title;
/**
* 事件内容
*/
private String content;
/**
* AI疗愈回复
*/
private String aiReply;
/**
* 情绪类型
*/
private String emotionType;
/**
* 情绪评分
*/
private Double emotionScore;
/**
* 标签列表
*/
private List<String> tags;
}
@@ -0,0 +1,53 @@
package com.emotion.dto.request;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.List;
import java.util.Map;
/**
* 实现路径创建请求
*
* @author huazhongmin
* @date 2025-12-22
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class LifePathCreateRequest extends BaseRequest {
/**
* 关联剧本ID
*/
@NotBlank(message = "关联剧本ID不能为空")
private String scriptId;
/**
* 路径标题
*/
@Size(max = 200, message = "路径标题长度不能超过200个字符")
private String title;
/**
* 路径描述
*/
private String description;
/**
* 路径步骤列表
* 每个步骤包含: phase, time, content, action, resources, habit
*/
private List<Map<String, Object>> steps;
/**
* 状态: active-进行中, completed-已完成, archived-已归档
*/
private String status;
/**
* 完成进度百分比
*/
private Double progress;
}
@@ -0,0 +1,26 @@
package com.emotion.dto.request;
import com.emotion.common.BasePageRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 实现路径分页查询请求
*
* @author huazhongmin
* @date 2025-12-22
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class LifePathPageRequest extends BasePageRequest {
/**
* 关联剧本ID筛选
*/
private String scriptId;
/**
* 状态筛选
*/
private String status;
}
@@ -0,0 +1,53 @@
package com.emotion.dto.request;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.List;
import java.util.Map;
/**
* 实现路径更新请求
*
* @author huazhongmin
* @date 2025-12-22
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class LifePathUpdateRequest extends BaseRequest {
/**
* 路径ID
*/
@NotBlank(message = "路径ID不能为空")
private String id;
/**
* 路径标题
*/
@Size(max = 200, message = "路径标题长度不能超过200个字符")
private String title;
/**
* 路径描述
*/
private String description;
/**
* 路径步骤列表
* 每个步骤包含: phase, time, content, action, resources, habit
*/
private List<Map<String, Object>> steps;
/**
* 状态: active-进行中, completed-已完成, archived-已归档
*/
private String status;
/**
* 完成进度百分比
*/
private Double progress;
}
@@ -0,0 +1,72 @@
package com.emotion.dto.response;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Map;
/**
* 爽文剧本响应
*
* @author huazhongmin
* @date 2025-12-22
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class EpicScriptResponse extends BaseResponse {
/**
* 用户ID
*/
private String userId;
/**
* 剧本标题
*/
private String title;
/**
* 剧本主题/渴望
*/
private String theme;
/**
* 剧本风格
*/
private String style;
/**
* 篇幅长度
*/
private String length;
/**
* 序幕:低谷回响
*/
private String plotIntro;
/**
* 转折:契机出现
*/
private String plotTurning;
/**
* 高潮:命运抉择
*/
private String plotClimax;
/**
* 结局:新的开始
*/
private String plotEnding;
/**
* 完整剧情JSON结构
*/
private Map<String, Object> plotJson;
/**
* 是否当前选中
*/
private Boolean isSelected;
}
@@ -0,0 +1,62 @@
package com.emotion.dto.response;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* 生命事件响应
*
* @author huazhongmin
* @date 2025-12-22
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class LifeEventResponse extends BaseResponse {
/**
* 用户ID
*/
private String userId;
/**
* 事件类型
*/
private String eventType;
/**
* 事件日期
*/
private String eventDate;
/**
* 事件标题
*/
private String title;
/**
* 事件内容
*/
private String content;
/**
* AI疗愈回复
*/
private String aiReply;
/**
* 情绪类型
*/
private String emotionType;
/**
* 情绪评分
*/
private Double emotionScore;
/**
* 标签列表
*/
private List<String> tags;
}
@@ -0,0 +1,53 @@
package com.emotion.dto.response;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
import java.util.Map;
/**
* 实现路径响应
*
* @author huazhongmin
* @date 2025-12-22
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class LifePathResponse extends BaseResponse {
/**
* 用户ID
*/
private String userId;
/**
* 关联剧本ID
*/
private String scriptId;
/**
* 路径标题
*/
private String title;
/**
* 路径描述
*/
private String description;
/**
* 路径步骤列表
*/
private List<Map<String, Object>> steps;
/**
* 状态
*/
private String status;
/**
* 完成进度百分比
*/
private Double progress;
}