<template>
  <div class="s4">
    <div class="s4__messages">
      <MessageShell role="user" name="用户" meta="11:00">
        <UserBubble content="@board 我们应该把订单服务拆成独立微服务吗？" />
      </MessageShell>

      <MessageShell role="assistant" name="私董会" meta="11:00">
        <BoardBannerCard
          topic="是否将订单服务拆分为独立微服务"
          :max-rounds="3"
          :current-round="1"
        />
      </MessageShell>

      <MessageShell role="assistant" name="架构师老张" meta="第 1 轮 · 专家" avatar="张" color="var(--accent-board)">
        <BoardRoundCard :content="speech1.content" />
      </MessageShell>

      <MessageShell role="assistant" name="后端负责人小李" meta="第 1 轮 · 专家" avatar="李" color="var(--accent-board)">
        <BoardRoundCard :content="speech2.content" />
      </MessageShell>

      <MessageShell role="assistant" name="主持人" meta="第 1 轮 · 小结" avatar="主" color="var(--accent-board)">
        <BoardRoundCard :content="summaryMessage.content" />
      </MessageShell>

      <MessageShell role="assistant" name="主持人" meta="11:05">
        <BoardConclusionCard :data="conclusionData" />
      </MessageShell>
    </div>
  </div>
</template>

<script setup lang="ts">
import {
  MessageShell,
  UserBubble,
  BoardBannerCard,
  BoardRoundCard,
  BoardConclusionCard,
} from '@/components/chat/messages'
import type { IChatMessage, IBoardConcludedData } from '@/api/types'

const speech1: IChatMessage = {
  id: 's4-speech-1',
  role: 'assistant',
  content: '我支持拆分。订单服务具有明确的业务边界，独立部署后可以降低发布耦合。当前单体应用里，订单模块的变更经常影响库存和支付，风险较高。',
  timestamp: new Date().toISOString(),
  status: 'completed',
}

const speech2: IChatMessage = {
  id: 's4-speech-2',
  role: 'assistant',
  content: '我担心拆分带来的分布式事务复杂度。订单与库存、支付的强一致性要求很高，如果引入 Saga 或 TCC，团队学习和维护成本会显著增加。建议先梳理核心流程再决定。',
  timestamp: new Date().toISOString(),
  status: 'completed',
}

const summaryMessage: IChatMessage = {
  id: 's4-summary',
  role: 'assistant',
  content: '**第 1 轮小结**：\n- 老张主张拆分，理由是边界清晰、降低发布风险。\n- 小李提醒分布式事务成本，建议先梳理流程。\n\n下一轮可继续讨论：拆分后的数据一致性与回滚策略。',
  timestamp: new Date().toISOString(),
  status: 'completed',
}

const conclusionData: IBoardConcludedData = {
  summary: '经过 1 轮讨论，专家认为订单服务拆分具备业务合理性，但需要先解决分布式事务与数据一致性问题。',
  decision_advice: '建议先绘制订单-库存-支付的领域边界图，并在沙箱环境中验证 Saga 编排方案，再决定是否拆分。',
  total_rounds: 1,
  consensus_points: [
    '订单服务具有清晰业务边界',
    '拆分前应评估分布式事务成本',
  ],
  dissent_points: [
    '老张认为风险主要来自发布耦合，拆分收益高',
    '小李认为团队驾驭分布式事务的能力是主要瓶颈',
  ],
}
</script>

<style scoped>
.s4 {
  max-width: var(--max-chat-width);
  margin: 0 auto;
  padding: 48px var(--space-4) 24px;
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.s4__messages {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  flex: 1;
}
</style>
