package com.huimv.employment.service.conversation.dto;

import io.swagger.v3.oas.annotations.media.Schema;

import java.time.LocalDateTime;

/**
 * 会话内单条消息，供聊天气泡展示。
 */
@Schema(description = "AI 对话消息")
public class ConversationMessageResponse {

    @Schema(description = "消息 ID", example = "1001")
    private Long id;

    @Schema(description = "角色：user / assistant / system", example = "user")
    private String role;

    @Schema(description = "消息正文", example = "帮我招 10 个仓库临时工")
    private String content;

    @Schema(description = "内容类型：text / card_draft / card_cost / card_order", example = "text")
    private String contentType;

    @Schema(description = "卡片结构化数据 JSON，仅卡片类型时有值")
    private String cardPayload;

    @Schema(description = "建议前端下一步动作编码")
    private String nextAction;

    @Schema(description = "关联草稿 ID")
    private Long relatedDraftId;

    @Schema(description = "消息时间")
    private LocalDateTime createTime;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getRole() {
        return role;
    }

    public void setRole(String role) {
        this.role = role;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getContentType() {
        return contentType;
    }

    public void setContentType(String contentType) {
        this.contentType = contentType;
    }

    public String getCardPayload() {
        return cardPayload;
    }

    public void setCardPayload(String cardPayload) {
        this.cardPayload = cardPayload;
    }

    public String getNextAction() {
        return nextAction;
    }

    public void setNextAction(String nextAction) {
        this.nextAction = nextAction;
    }

    public Long getRelatedDraftId() {
        return relatedDraftId;
    }

    public void setRelatedDraftId(Long relatedDraftId) {
        this.relatedDraftId = relatedDraftId;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }
}
