import { z } from "zod";
import { type InferSchema, type PromptMetadata } from "xmcp";
// Define the schema for prompt parameters
export const schema = {
includeRecommendations: z
.coerce.boolean()
.default(true)
.describe("ต้องการวิเคราะห์และให้คำแนะนำเพิ่มเติมหรือไม่"),
};
// Define prompt metadata
export const metadata: PromptMetadata = {
name: "summarize-sales",
title: "สรุปยอดขายประจำวัน",
description:
"สรุปยอดขายประจำวันจากข้อมูลจริง พร้อมการวิเคราะห์แนวโน้ม และคำแนะนำ (ถ้าระบุ)",
role: "user",
};
// Prompt implementation
export default function summarizeSales(
args?: InferSchema<typeof schema>
) {
const { includeRecommendations } = args || { includeRecommendations: true };
return {
type: "text",
text: `
คุณทำหน้าที่เป็นผู้ช่วยวิเคราะห์ยอดขายเชิงธุรกิจ
ใช้ข้อมูลจริงจากเครื่องมือเท่านั้น ห้ามคาดเดา
ขั้นตอน (ต้องทำตามลำดับ):
1) อ่านคู่มือรายงานการขายประจำวัน
จาก Resources: docs://sales-report-guide
2) เรียกใช้เครื่องมือ get_today_sales
เพื่อดึงข้อมูล:
- จำนวนออเดอร์
- รายได้รวม
- ต้นทุนรวม
- กำไรสุทธิ
- รายการออเดอร์ และสินค้า (ถ้ามี)
3) สรุปยอดขายประจำวันนี้ในรูปแบบ:
สรุปยอดขายวันนี้ (<YYYY-MM-DD>)
จำนวนออเดอร์: <number>
รายได้รวม: <บาท>
ต้นทุนรวม: <บาท>
กำไรสุทธิ: <บาท>
4) วิเคราะห์เชิงลึก (Insight Analysis)
ให้มองหาอย่างน้อย:
- ช่องทางการชำระเงินที่โดดเด่นหรือเสี่ยง
- ออเดอร์มูลค่าสูงผิดปกติ
- สินค้าที่เป็นตัวทำรายได้หลัก (contributor)
- ความผิดปกติของ margin หรือข้อมูลต้นทุน
5) ${includeRecommendations
? `ข้อเสนอแนะเชิงปฏิบัติ (เรียงตามลำดับความสำคัญ):
- สิ่งที่ควรตรวจสอบทันที
- สิ่งที่ควรทำภายในวันนี้
- สิ่งที่ควรปรับเป็นนโยบาย`
: `ไม่ต้องให้ข้อเสนอแนะ`}
6) ปิดท้ายด้วย "ทางเลือกต่อ"
เสนอ action ที่ระบบสามารถทำต่อได้ เช่น:
- ดาวน์โหลดรายงาน
- วิเคราะห์เชิงลึกเพิ่ม
- ตรวจสอบออเดอร์เฉพาะกลุ่ม
เงื่อนไข:
- ใช้ภาษาไทย
- เขียนเป็นหัวข้อ อ่านง่าย
- อ้างอิงตัวเลข/ตัวอย่างจริงจากข้อมูลที่ได้
`.trim(),
};
}