feat(idea): create group auto-generates personas; channel removed; product->product/idea

Per product-idea focus:
- GroupBuilder: 'สินค้า/บริการ/ไอเดีย' label; removed the channel select (channel is now
  chosen at chat time as a scenario, not at persona create). Create now auto-runs analyze
  so personas are generated immediately (no separate Analyze button).
- GroupEdit: analyze button becomes 'สร้างบุคคลต้นแบบเพิ่มเติม' which APPENDS more personas
  (backend analyze?append=true reuses sales kit + keeps existing instead of replacing).
- i18n product label updated.
- User-journey test asserts append adds personas (15->30) and existing kept.
All 9 backend suites pass. Rebuilt dist.
This commit is contained in:
Macky
2026-08-09 10:12:40 +07:00
parent 675cc5c73f
commit 0b92430aab
33 changed files with 119 additions and 93 deletions

View File

@@ -5,7 +5,7 @@
<h2 style="margin:0"><Users :size="22" :stroke-width="1.8" style="vertical-align:-4px" /> {{ i18n.t('managePersonas') }}</h2>
<div class="row" style="margin-left:auto;gap:10px">
<button @click="analyze" :disabled="busy" class="primary">
<span v-if="busy" class="spinner"></span><Sparkles v-else :size="18" :stroke-width="1.8" /> {{ busy ? 'กำลังสร้าง…' : i18n.t('analyze') }}
<span v-if="busy" class="spinner"></span><Sparkles v-else :size="18" :stroke-width="1.8" /> {{ busy ? 'กำลังสร้าง…' : 'สร้างบุคคลต้นแบบเพิ่มเติม' }}
</button>
</div>
</div>
@@ -17,15 +17,16 @@
<div class="card guide">
<strong>ใชหนาน</strong>
<ol style="margin:8px 0 0;padding-left:20px;line-height:1.8">
<li>กดป <strong> สราง/เคราะหคคลตนแบบ</strong> เพใหระบบสรางลกคาจำลอง 15 คน (ระด A/B/C)</li>
<li>ระบบสรางบคคลตนแบบ (กคาจำลอง) ใหตโนมแล หลงกดสราง</li>
<li>แตละการดคอลกคาจำลอง 1 คน กด <strong> แกไข</strong> เพอปรบรายละเอยดใหตรงใจ</li>
<li>อยากไดกคาจำลองเพ กด <strong>สรางบคคลตนแบบเพมเต</strong></li>
<li>เมอพรอมใหใช กด <strong>เปดใชงาน</strong> (งทำในขนถดไป)</li>
</ol>
</div>
<div v-if="personas.length === 0 && !busy" class="card empty-state">
<strong>งไมคคลตนแบบ</strong>
<span>กด "สร้าง/วิเคราะห์บุคคลต้นแบบ" เพอใหระบบสรางลกคาจำลองให</span>
<span>กด "สร้างบุคคลต้นแบบเพิ่มเติม" เพอใหระบบสรางลกคาจำลองให</span>
</div>
<!-- Persona list -->
@@ -83,7 +84,8 @@ function tierClass(t) { return { A: 'tier-a', B: 'tier-b', C: 'tier-c' }[t] || '
async function analyze() {
busy.value = true; error.value = ''
try {
const data = await api.analyzeGroup(gid)
// Append more personas (keeps existing ones), per the 'create more personas' flow.
const data = await api.analyzeGroup(gid, { append: true })
personas.value = data.personas
await load()
} catch (e) { error.value = e.message }