From 5437a34124e5b5d563e9e7ace90bce9cdf06f877 Mon Sep 17 00:00:00 2001 From: Macky Date: Wed, 3 Jun 2026 14:15:48 +0700 Subject: [PATCH] chore: remove emdash files (seed, scripts, db, env types) User-approved deletion of emdash remnants: - .emdash/ directory - seed/, seed-*.cjs, count-cols.cjs (emdash seed scripts) - data.db, data.db-shm, data.db-wal (emdash SQLite) - emdash-env.d.ts (emdash type definitions) Site is now 100% markdown-driven, no CMS runtime needed. --- .emdash/seed.json | 578 -------------------------------------------- count-cols.cjs | 19 -- data.db | Bin 1048576 -> 0 bytes data.db-shm | Bin 32768 -> 0 bytes data.db-wal | 0 emdash-env.d.ts | 116 --------- seed-all.cjs | 52 ---- seed-db.cjs | 14 -- seed-services.cjs | 26 -- seed/seed.json | 598 ---------------------------------------------- 10 files changed, 1403 deletions(-) delete mode 100644 .emdash/seed.json delete mode 100644 count-cols.cjs delete mode 100644 data.db delete mode 100644 data.db-shm delete mode 100644 data.db-wal delete mode 100644 emdash-env.d.ts delete mode 100644 seed-all.cjs delete mode 100644 seed-db.cjs delete mode 100644 seed-services.cjs delete mode 100644 seed/seed.json diff --git a/.emdash/seed.json b/.emdash/seed.json deleted file mode 100644 index 7449540..0000000 --- a/.emdash/seed.json +++ /dev/null @@ -1,578 +0,0 @@ -{ - "version": "1", - "collections": [ - { - "slug": "pages", - "label": "Pages", - "fields": [ - { "slug": "title", "type": "string", "label": "Title" }, - { "slug": "subtitle", "type": "string", "label": "Subtitle" }, - { "slug": "badge", "type": "string", "label": "Badge" }, - { "slug": "hero_image", "type": "image", "label": "Hero Image" }, - { "slug": "theme", "type": "select", "label": "Theme", "options": ["yellow", "accent"] }, - { "slug": "show_cta", "type": "boolean", "label": "Show CTA" }, - { "slug": "cta_text", "type": "string", "label": "CTA Text" }, - { "slug": "cta_link", "type": "string", "label": "CTA Link" }, - { "slug": "variant", "type": "select", "label": "Hero Variant", "options": ["split", "centered", "text_only", "floating_cards"] }, - { "slug": "size", "type": "select", "label": "Hero Size", "options": ["full", "compact"] } - ] - }, - { - "slug": "services", - "label": "Services", - "fields": [ - { "slug": "title", "type": "string", "label": "Title" }, - { "slug": "subtitle", "type": "string", "label": "Subtitle" }, - { "slug": "badge", "type": "string", "label": "Badge" }, - { "slug": "hero_image", "type": "image", "label": "Hero Image" }, - { "slug": "content", "type": "portableText", "label": "Content" }, - { - "slug": "features", - "type": "repeater", - "label": "Features", - "fields": [ - { "slug": "icon", "type": "string", "label": "Icon" }, - { "slug": "feature_title", "type": "string", "label": "Title" }, - { "slug": "description", "type": "string", "label": "Description" } - ] - } - ] - }, - { - "slug": "portfolio", - "label": "Portfolio", - "fields": [ - { "slug": "name", "type": "string", "label": "Name" }, - { "slug": "url", "type": "url", "label": "URL" }, - { "slug": "category", "type": "select", "label": "Category", "options": ["webdev", "ecommerce", "marketing"] }, - { "slug": "category_label", "type": "string", "label": "Category Label" }, - { "slug": "thumbnail", "type": "image", "label": "Thumbnail" }, - { "slug": "description", "type": "text", "label": "Description" }, - { - "slug": "services", - "type": "repeater", - "label": "Services", - "fields": [ - { "slug": "service_name", "type": "string", "label": "Name" } - ] - } - ] - }, - { - "slug": "blog", - "label": "Blog", - "fields": [ - { "slug": "title", "type": "string", "label": "Title" }, - { "slug": "excerpt", "type": "string", "label": "Excerpt" }, - { "slug": "image", "type": "image", "label": "Image" }, - { "slug": "date", "type": "datetime", "label": "Date" }, - { "slug": "category", "type": "string", "label": "Category" }, - { "slug": "content", "type": "portableText", "label": "Content" } - ] - }, - { - "slug": "faq", - "label": "FAQ", - "fields": [ - { "slug": "category", "type": "string", "label": "Category" }, - { "slug": "question", "type": "string", "label": "Question" }, - { "slug": "answer", "type": "text", "label": "Answer" } - ] - }, - { - "slug": "settings", - "label": "Site Settings", - "fields": [ - { "slug": "site_name", "type": "string", "label": "Site Name" }, - { "slug": "email", "type": "string", "label": "Contact Email" }, - { "slug": "phone", "type": "string", "label": "Contact Phone" }, - { "slug": "address", "type": "text", "label": "Address" }, - { "slug": "facebook", "type": "url", "label": "Facebook URL" }, - { "slug": "line", "type": "url", "label": "LINE URL" }, - { "slug": "linkedin", "type": "url", "label": "LinkedIn URL" } - ] - } - ], - "content": { - "pages": [ - { - "id": "page-home", - "slug": "home", - "data": { - "title": "เปลี่ยนธุรกิจของคุณ ด้วย AI และเทคโนโลยีสมัยใหม่", - "subtitle": "รับทำเว็บไซต์ SEO AI Chatbot สำหรับธุรกิจไทย
เพิ่มยอดขาย ลดต้นทุน ด้วยเทคโนโลยีล้ำสมัย", - "badge": "ดิจิทัลเอเจนซี่ในประเทศไทย", - "hero_image": "/images/hero/hero.jpg", - "theme": "yellow", - "variant": "split", - "size": "full", - "show_cta": true, - "cta_text": "เริ่มต้นวันนี้", - "cta_link": "/contact" - } - }, - { - "id": "page-about", - "slug": "about", - "data": { - "title": "เกี่ยวกับ มอร์มินิมอร์", - "subtitle": "บริษัท มอร์มินิมอร์ จำกัด
รับทำเว็บไซต์ SEO AI Chatbot สำหรับธุรกิจไทย", - "badge": "เกี่ยวกับเรา", - "hero_image": "/images/hero/about.jpg", - "theme": "yellow", - "variant": "centered", - "size": "compact", - "show_cta": false - } - }, - { - "id": "page-portfolio", - "slug": "portfolio", - "data": { - "title": "ผลงานของเรา", - "subtitle": "รวมผลงานพัฒนาเว็บไซต์และโปรเจกต์ที่เราภาคภูมิใจ", - "badge": "พอร์ตโฟลิโอ", - "hero_image": "/images/hero/hero.jpg", - "theme": "yellow", - "variant": "text-only", - "size": "compact", - "show_cta": false - } - }, - { - "id": "page-contact", - "slug": "contact", - "data": { - "title": "พูดคุยกับเรา วันนี้เลย!", - "subtitle": "พร้อมให้คำปรึกษาและช่วยเหลือคุณ
ปรึกษาฟรี ไม่มีค่าใช้จ่าย", - "badge": "ติดต่อเรา", - "hero_image": "/images/hero/contact.jpg", - "theme": "yellow", - "variant": "text-only", - "size": "compact", - "show_cta": false - } - }, - { - "id": "page-faq", - "slug": "faq", - "data": { - "title": "คำถามที่พบบ่อย", - "subtitle": "หาคำตอบสำหรับคำถามที่พบบ่อยเกี่ยวกับบริการของเรา", - "badge": "FAQ", - "hero_image": "/images/hero/tech-consult.jpg", - "theme": "yellow", - "variant": "centered", - "size": "compact", - "show_cta": false - } - }, - { - "id": "page-privacy", - "slug": "privacy", - "data": { - "title": "นโยบายความเป็นส่วนตัว", - "subtitle": "มีผลบังคับใช้วันที่ 5 พฤษภาคม 2569", - "badge": "กฎหมาย", - "hero_image": "/images/hero/ai-automation.jpg", - "theme": "yellow", - "variant": "text-only", - "size": "compact", - "show_cta": false - } - }, - { - "id": "page-terms", - "slug": "terms", - "data": { - "title": "เงื่อนไขการให้บริการ", - "subtitle": "มีผลบังคับใช้วันที่ 5 พฤษภาคม 2569", - "badge": "กฎหมาย", - "hero_image": "/images/hero/marketing-automation.jpg", - "theme": "yellow", - "variant": "text-only", - "size": "compact", - "show_cta": false - } - } - ], - "services": [ - { - "id": "service-webdev", - "slug": "webdev", - "data": { - "title": "พัฒนาเว็บไซต์", - "subtitle": "สร้างเว็บไซต์ที่ทันสมัย รวดเร็ว และตอบสนองความต้องการของลูกค้าของคุณ ด้วยเทคโนโลยีล่าสุดและ design ที่สวยงาม", - "badge": "บริการ", - "hero_image": "/images/hero/web-development-hero.jpg", - "feature1_icon": "⚡", - "feature1_title": "เร็วสุดใน class", - "feature1_desc": "โหลดเร็ว เพิ่ม conversion และ SEO ranking", - "feature2_icon": "📱", - "feature2_title": "Responsive ทุก device", - "feature2_desc": "แสดงผลได้ดีบน mobile tablet และ desktop", - "feature3_icon": "🎨", - "feature3_title": "Design สวยงาม", - "feature3_desc": "ออกแบบ UI/UX ที่ดึงดูดและใช้งานง่าย", - "feature4_icon": "🔒", - "feature4_title": "ปลอดภัย", - "feature4_desc": "Security ระดับสูง ป้องกันการโจมตี", - "feature5_icon": "🔍", - "feature5_title": "SEO Optimized", - "feature5_desc": "ออกแบบมาเพื่อให้ Google ชอบ", - "feature6_icon": "📊", - "feature6_title": "Analytics ในตัว", - "feature6_desc": "ติดตามผู้เข้าชมและวัดผลได้" - } - }, - { - "id": "service-marketing", - "slug": "marketing", - "data": { - "title": "Marketing Automation", - "subtitle": "เพิ่มประสิทธิภาพการตลาดและลดต้นทุนด้วยระบบอัตโนมัติ ประหยัดเวลา เพิ่ม conversion วัดผลได้", - "badge": "บริการ", - "hero_image": "/images/hero/marketing-automation-hero.jpg", - "feature1_icon": "📧", - "feature1_title": "Email Automation", - "feature1_desc": "ส่ง email อัตโนมัติเมื่อ trigger ตรงกับเงื่อนไขที่กำหนด", - "feature2_icon": "💬", - "feature2_title": "Chatbot Integration", - "feature2_desc": "เชื่อมต่อ chatbot กับระบบ CRM เพื่อเก็บข้อมูลลูกค้า", - "feature3_icon": "📱", - "feature3_title": "SMS/Line Automation", - "feature3_desc": "ส่ง SMS หรือ LINE message อัตโนมัติตาม timeline", - "feature4_icon": "📊", - "feature4_title": "Analytics Dashboard", - "feature4_desc": "ติดตามผลแคมเปญและวัด ROI ได้แบบ real-time", - "feature5_icon": "🎯", - "feature5_title": "Lead Scoring", - "feature5_desc": "ให้คะแนน leads ตามพฤติกรรมเพื่อจัดลำดับความสำคัญ", - "feature6_icon": "🔄", - "feature6_title": "Workflow Automation", - "feature6_desc": "สร้าง workflow อัตโนมัติสำหรับงานที่ทำซ้ำๆ" - } - }, - { - "id": "service-ai", - "slug": "ai", - "data": { - "title": "AI Automation", - "subtitle": "นำ AI มาใช้เพื่อเพิ่มยอดขายและปรับปรุงการให้บริการลูกค้า เพิ่มประสิทธิภาพ ลดต้นทุน ด้วยเทคโนโลยีล้ำสมัย", - "badge": "บริการ", - "hero_image": "/images/hero/ai-automation-hero.jpg", - "feature1_icon": "🤖", - "feature1_title": "AI Chatbot", - "feature1_desc": "Chatbot ที่ใช้ AI ตอบคำถามลูกค้าได้ 24/7 รองรับภาษาไทย", - "feature2_icon": "💬", - "feature2_title": "AI Customer Service", - "feature2_desc": "ระบบตอบคำถามอัตโนมัติด้วย AI ที่เข้าใจบริบท", - "feature3_icon": "📝", - "feature3_title": "AI Content Generation", - "feature3_desc": "สร้าง content อัตโนมัติด้วย AI ที่ SEO friendly", - "feature4_icon": "📧", - "feature4_title": "AI Email Marketing", - "feature4_desc": "ส่ง email ที่ personalized ด้วย AI ที่วิเคราะห์พฤติกรรม", - "feature5_icon": "📊", - "feature5_title": "AI Sales Prediction", - "feature5_desc": "ทำนายยอดขายและวางแผนการตลาดด้วย AI", - "feature6_icon": "🎯", - "feature6_title": "AI Lead Scoring", - "feature6_desc": "ให้คะแนน leads อัตโนมัติด้วย AI ที่เรียนรู้จากข้อมูล" - } - }, - { - "id": "service-consult", - "slug": "consult", - "data": { - "title": "Tech Consult", - "subtitle": "ให้คำปรึกษาด้านเทคโนโลยีเพื่อธุรกิจของคุณ วางแผน ออกแบบ และ implement ระบบที่เหมาะสม", - "badge": "บริการ", - "hero_image": "/images/hero/tech-consult-hero.jpg", - "feature1_icon": "🔍", - "feature1_title": "Digital Audit", - "feature1_desc": "วิเคราะห์สถานะดิจิทัลปัจจุบันของธุรกิจคุณอย่างละเอียด", - "feature2_icon": "📋", - "feature2_title": "Digital Strategy", - "feature2_desc": "วางแผน digital transformation ที่เหมาะกับเป้าหมายธุรกิจ", - "feature3_icon": "🛠️", - "feature3_title": "Technology Selection", - "feature3_desc": "แนะนำเทคโนโลยีที่เหมาะสมกับ budget และความต้องการ", - "feature4_icon": "📐", - "feature4_title": "System Architecture", - "feature4_desc": "ออกแบบระบบที่ scalable และ maintainable", - "feature5_icon": "🔧", - "feature5_title": "Implementation Support", - "feature5_desc": "ดูแลและให้คำปรึกษาตลอดการ implement", - "feature6_icon": "📈", - "feature6_title": "Performance Optimization", - "feature6_desc": "ปรับปรุงประสิทธิภาพระบบให้ดีขึ้นอย่างต่อเนื่อง" - } - } - ], - "portfolio": [ - { - "id": "portfolio-001", - "slug": "lungfinler", - "data": { - "name": "Lungfinler", - "url": "https://lungfinler.com", - "category": "webdev", - "category_label": "พัฒนาเว็บไซต์", - "thumbnail": "/images/portfolio/lungfinler.png", - "description": "Digital Agency - บริการด้านการสร้างแบรนด์ กราฟิกดีไซน์ และถ่ายภาพสินค้าคุณภาพสูง" - } - }, - { - "id": "portfolio-002", - "slug": "jetindustries", - "data": { - "name": "Jet Industries", - "url": "https://jetindustries.co.th", - "category": "webdev", - "category_label": "พัฒนาเว็บไซต์", - "thumbnail": "/images/portfolio/jetindustries.png", - "description": "ผู้ผลิตพลาสติกฉีดขึ้นรูปอย่างแม่นยำ (Precision Plastic Injection Molding) มีประสบการณ์กว่า 40 ปี" - } - }, - { - "id": "portfolio-003", - "slug": "lawyernoom", - "data": { - "name": "สำนักงานกฎหมาย ตถาตา", - "url": "https://lawyernoom.com", - "category": "webdev", - "category_label": "พัฒนาเว็บไซต์", - "thumbnail": "/images/portfolio/lawyernoom.png", - "description": "สำนักงานกฎหมายโดย ทนายความ คมสัน ศรีวนิชย์ - บริการด้านคดีความ คดีแพ่ง คดีอาญา" - } - }, - { - "id": "portfolio-004", - "slug": "underdog", - "data": { - "name": "Underdog Marketing", - "url": "https://underdog.run", - "category": "webdev", - "category_label": "พัฒนาเว็บไซต์", - "thumbnail": "/images/portfolio/underdog.png", - "description": "บล็อกการตลาดและการขายสไตล์ ลุยไม่ยั้ง โดย บุ้ง ดีดติ่งหู" - } - }, - { - "id": "portfolio-005", - "slug": "baofuling", - "data": { - "name": "Baofuling Shop", - "url": "https://baofulingshop.com", - "category": "ecommerce", - "category_label": "อีคอมเมิร์ซ", - "thumbnail": "/images/portfolio/baofuling.png", - "description": "ร้านค้าออนไลน์ครีมบัวหิมะและผลิตภัณฑ์ความงามจีน" - } - }, - { - "id": "portfolio-006", - "slug": "trainersunny", - "data": { - "name": "เทรนเนอร์ซันนี่", - "url": "https://trainersunny.com", - "category": "webdev", - "category_label": "พัฒนาเว็บไซต์", - "thumbnail": "/images/portfolio/trainersunny.png", - "description": "ผู้เชี่ยวชาญด้านการพัฒนาบุคลากรและ Soft Skill" - } - }, - { - "id": "portfolio-007", - "slug": "luadjob", - "data": { - "name": "เลือดจระเข้วานิไทย", - "url": "https://เลือดจระเข้วานิไทย.com", - "category": "ecommerce", - "category_label": "อีคอมเมิร์ซ", - "thumbnail": "/images/portfolio/luadjob.png", - "description": "ตัวแทนจำหน่ายเลือดจระเข้วานิไทยอย่างเป็นทางการ" - } - }, - { - "id": "portfolio-008", - "slug": "tuanthong", - "data": { - "name": "ทวนทอง 99", - "url": "https://tuanthong99.com", - "category": "ecommerce", - "category_label": "อีคอมเมิร์ซ", - "thumbnail": "/images/portfolio/tuanthong.png", - "description": "ร้านค้าออนไลน์สมุนไพรไทยคุณภาพสูง" - } - }, - { - "id": "portfolio-009", - "slug": "odooportal", - "data": { - "name": "Odoo Portal", - "url": "https://odooportal.com", - "category": "marketing", - "category_label": "ที่ปรึกษาการตลาด", - "thumbnail": "/images/portfolio/odooportal.png", - "description": "ตัวแทนจำหน่าย Odoo อย่างเป็นทางการในประเทศไทย" - } - } - ], - "faq": [ - { - "id": "faq-001", - "slug": "service-001", - "data": { "category": "บริการ", "category_icon": "🎯", "question": "MoreminiMore ให้บริการอะไรบ้าง?", "answer": "เราให้บริการ 4 ประเภทหลัก: พัฒนาเว็บไซต์, Marketing Automation, AI Automation และ Tech Consult สำหรับธุรกิจไทย" } - }, - { - "id": "faq-002", - "slug": "service-002", - "data": { "category": "บริการ", "category_icon": "🎯", "question": "สามารถสั่งทำเว็บไซต์เฉพาะประเภทได้ไหม?", "answer": "ได้ เราสามารถพัฒนาเว็บไซต์ได้ทุกประเภท ไม่ว่าจะเป็นเว็บบริษัท เว็บขายของ เว็บ Landing Page หรือระบบ Web Application" } - }, - { - "id": "faq-003", - "slug": "service-003", - "data": { "category": "บริการ", "category_icon": "🎯", "question": "AI Chatbot สามารถทำอะไรได้บ้าง?", "answer": "AI Chatbot ของเราสามารถตอบคำถามลูกค้า รับออร์เดอร์ นัดหมาย และเชื่อมต่อกับระบบ CRM หรือร้านค้าออนไลน์ได้" } - }, - { - "id": "faq-004", - "slug": "price-001", - "data": { "category": "ราคา", "category_icon": "💰", "question": "ราคาเริ่มต้นของการทำเว็บไซต์เท่าไหร่?", "answer": "ราคาเริ่มต้นอยู่ที่ 15,000 บาท ขึ้นอยู่กับความซับซ้อนและฟีเจอร์ที่ต้องการ เราจะประเมินและเสนอราคาหลังจากการปรึกษาฟรี" } - }, - { - "id": "faq-005", - "slug": "price-002", - "data": { "category": "ราคา", "category_icon": "💰", "question": "มีราคาแพ็คเกจหรือไม่?", "answer": "มี เรามีแพ็คเกจสำหรับธุรกิจที่ต้องการเริ่มต้นอย่างง่ายๆ และแพ็คเกจสำหรับธุรกิจที่ต้องการระบบครบวงจร สามารถเลือกได้ตามความต้องการ" } - }, - { - "id": "faq-006", - "slug": "price-003", - "data": { "category": "ราคา", "category_icon": "💰", "question": "ชำระเงินอย่างไร?", "answer": "รองรับการชำระเงินผ่านโอนเงินธนาคาร หรือผ่อนชำระผ่านบัตรเครดิต 3-6 งวด (มีดอกเบี้ย)" } - }, - { - "id": "faq-007", - "slug": "time-001", - "data": { "category": "ระยะเวลา", "category_icon": "⏱️", "question": "ใช้เวลาพัฒนานานเท่าไหร่?", "answer": "ขึ้นอยู่กับความซับซ้อน Landing Page ใช้เวลา 1-2 สัปดาห์ เว็บไซต์ขนาดกลาง 2-4 สัปดาห์ ระบบ Web Application 4-8 สัปดาห์" } - }, - { - "id": "faq-008", - "slug": "time-002", - "data": { "category": "ระยะเวลา", "category_icon": "⏱️", "question": "ถ้าต้องการด่วนได้ไหม?", "answer": "ได้ เรามีบริการด่วนพิเศษ (เพิ่มค่าใช้จ่าย 30%) สามารถส่งมอบงานได้เร็วขึ้น 50%" } - }, - { - "id": "faq-009", - "slug": "support-001", - "data": { "category": "หลังการขาย", "category_icon": "💬", "question": "มีการรับประกันหรือไม่?", "answer": "เรารับประกันงาน 30 วันหลังส่งมอบ หากมีปัญหาจากการพัฒนา เราจะแก้ไขให้ฟรี" } - }, - { - "id": "faq-010", - "slug": "support-002", - "data": { "category": "หลังการขาย", "category_icon": "💬", "question": "มีบริการดูแลหลังการขายไหม?", "answer": "มี เรามีแพ็คเกจดูแลรายเดือนเริ่มต้นที่ 2,000 บาท/เดือน รวมการอัพเดทเนื้อหา ปรับปรุงความปลอดภัย และ Backup" } - } - ], - "blog": [ - { - "id": "post-001", - "slug": "5-ways-ai-increase-sales", - "data": { - "title": "5 วิธีใช้ AI เพิ่มยอดขายให้ธุรกิจของคุณ", - "excerpt": "ค้นพบ 5 วิธีที่ AI สามารถช่วยเพิ่มยอดขายให้ธุรกิจ SMEs ไทย พร้อมตัวอย่างและแนวทางการนำไปใช้จริง", - "image": "/images/blog/5-ways-ai-increase-sales.jpg", - "date": "2026-03-11", - "category": "AI Business", - "content": { - "type": "doc", - "content": [ - { "type": "heading", "attrs": { "level": 2 }, "content": [{ "type": "text", "text": "วิธีที่ 1: ใช้ AI วิเคราะห์ลูกค้าและแนะนำสินค้าที่ตรงใจ" }] }, - { "type": "paragraph", "content": [{ "type": "text", "text": "หนึ่งในความสามารถที่ทรงพลังที่สุดของ AI คือการวิเคราะห์ข้อมูลลูกค้าและค้นหารูปแบบที่มนุษย์อาจมองไม่เห็น AI สามารถวิเคราะห์ว่าลูกค้าแต่ละคนชอบสินค้าประเภทไหน ซื้อในช่วงเวลาไหน และมีพฤติกรรมการซื้ออย่างไร" }] }, - { "type": "heading", "attrs": { "level": 2 }, "content": [{ "type": "text", "text": "วิธีที่ 2: ใช้ Chatbot ดูแลลูกค้าตลอด 24 ชั่วโมง" }] }, - { "type": "paragraph", "content": [{ "type": "text", "text": "ลูกค้าจำนวนมากต้องการได้รับคำตอบทันที ไม่ว่าจะกี่โมง แต่การจ้างพนักงานทำงาน 24 ชั่วโมงนั้นมีค่าใช้จ่ายสูง Chatbot ที่ใช้ AI สามารถตอบคำถามลูกค้าได้ตลอดเวลา โดยไม่ต้องเสียค่าล่วงเวลา" }] }, - { "type": "heading", "attrs": { "level": 2 }, "content": [{ "type": "text", "text": "วิธีที่ 3: ใช้ AI ส่งข้อความการตลาดในเวลาที่เหมาะสม" }] }, - { "type": "paragraph", "content": [{ "type": "text", "text": "การส่งข้อความการตลาดไม่ใช่แค่การส่งออกไปเท่านั้น แต่ต้องส่งในเวลาที่ลูกค้ามีโอกาสอ่านและตอบสนองมากที่สุด AI สามารถวิเคราะห์ว่าลูกค้าแต่ละคนมีช่วงเวลาไหนที่เปิดอ่านข้อความบ่อยที่สุด และส่งในเวลานั้น" }] }, - { "type": "heading", "attrs": { "level": 2 }, "content": [{ "type": "text", "text": "วิธีที่ 4: ใช้ AI สร้างเนื้อหาการตลาด" }] }, - { "type": "paragraph", "content": [{ "type": "text", "text": "เนื้อหาการตลาดที่ดีเป็นหัวใจสำคัญในการดึงดูดลูกค้า แต่การสร้างเนื้อหาที่มีคุณภาพตลอดเวลาต้องใช้เวลาและทรัพยากรมาก AI สามารถช่วยสร้างเนื้อหาได้เร็วขึ้น ไม่ว่าจะเป็นโพสต์เฟซบุ๊ก คำบรรยายสินค้า อีเมลการตลาด หรือบทความบล็อก" }] }, - { "type": "heading", "attrs": { "level": 2 }, "content": [{ "type": "text", "text": "วิธีที่ 5: ใช้ AI ทำนายแนวโน้มและวางแผนสินค้า" }] }, - { "type": "paragraph", "content": [{ "type": "text", "text": "การมีสินค้าคงคลงเป็นสิ่งจำเป็นสำหรับธุรกิจค้าปลีก แต่การมีสินค้ามากเกินไปก็เป็นปัญหา AI สามารถวิเคราะห์ข้อมูลยอดขายในอดีต ฤดูกาล และปัจจัยอื่นๆ เพื่อทำนายว่าควรสั่งสินค้าเท่าไหร่ในแต่ละช่วง" }] } - ] - } - } - }, - { - "id": "post-002", - "slug": "ai-content-google-love", - "data": { - "title": "วิธีสร้าง Content ด้วย AI ที่ Google รัก", - "excerpt": "เรียนรู้วิธีการใช้ AI ช่วยสร้างเนื้อหาการตลาดที่มีคุณภาพและได้รับการจัดอันดับดีจาก Google พร้อมเทคนิคและตัวอย่างจริง", - "image": "/images/blog/ai-content-google-love.jpg", - "date": "2026-03-10", - "category": "AI Content", - "content": { - "type": "doc", - "content": [ - { "type": "heading", "attrs": { "level": 2 }, "content": [{ "type": "text", "text": "ทำไม AI Content ต้องมีคุณภาพ" }] }, - { "type": "paragraph", "content": [{ "type": "text", "text": "Google มีอัลกอริทึมที่ฉลาดมาก สามารถแยกแยะได้ว่าเนื้อหาที่สร้างโดย AI มีคุณภาพหรือไม่ เนื้อหาที่ไม่มีคุณค่า สร้างขึ้นแค่เพื่อใส่คีย์เวิร์ด จะถูกลงโทษและไม่ติดอันดับ" }] }, - { "type": "heading", "attrs": { "level": 2 }, "content": [{ "type": "text", "text": "วิธีใช้ AI สร้างเนื้อหาที่ดี" }] }, - { "type": "paragraph", "content": [{ "type": "text", "text": "ใช้ AI เป็นผู้ช่วย ไม่ใช่ผู้เขียนทั้งหมด วิธีที่ดีที่สุดคือใช้ AI ช่วยในบางส่วน เช่น รวบรวมข้อมูล สร้างโครงสร้าง หรือเขียน draft แล้วนำมาปรับแก้ด้วยมนุษย์" }] } - ] - } - } - }, - { - "id": "post-003", - "slug": "ai-for-sme-thailand", - "data": { - "title": "AI สำหรับ SME ไทย: คู่มือฉบับสมบูรณ์", - "excerpt": "การใช้ AI สำหรับธุรกิจ SME ไทยเพื่อเพิ่มขีดความสามารถในการแข่งขัน พร้อมแนวทางปฏิบัติจริง", - "image": "/images/blog/ai-for-sme-thailand.jpg", - "date": "2026-03-08", - "category": "AI Business", - "content": { - "type": "doc", - "content": [ - { "type": "heading", "attrs": { "level": 2 }, "content": [{ "type": "text", "text": "ทำไม SME ต้องใช้ AI" }] }, - { "type": "paragraph", "content": [{ "type": "text", "text": "AI ไม่ใช่เทคโนโลยีสำหรับบริษัทใหญ่เท่านั้น ธุรกิจ SME สามารถเริ่มใช้ประโยชน์จาก AI ได้ง่ายๆ ด้วยเครื่องมือที่เข้าถึงได้" }] } - ] - } - } - }, - { - "id": "post-004", - "slug": "digital-transformation-guide", - "data": { - "title": "คู่มือ Digital Transformation ฉบับสมบูรณ์", - "excerpt": "การ transform ธุรกิจของคุณสู่ดิจิทัลอย่างครบวงจร ตั้งแต่การวางแผนจนถึงการ Implement", - "image": "/images/blog/digital-transformation.jpg", - "date": "2026-03-05", - "category": "Business", - "content": { - "type": "doc", - "content": [ - { "type": "heading", "attrs": { "level": 2 }, "content": [{ "type": "text", "text": "Digital Transformation คืออะไร" }] }, - { "type": "paragraph", "content": [{ "type": "text", "text": "Digital Transformation คือการนำเทคโนโลยีดิจิทัลมาใช้ในทุกด้านของธุรกิจ เพื่อเพิ่มประสิทธิภาพและสร้างคุณค่าใหม่ให้กับลูกค้า" }] } - ] - } - } - }, - { - "id": "post-005", - "slug": "marketing-automation-guide", - "data": { - "title": "Marketing Automation: คู่มือเริ่มต้น", - "excerpt": "เรียนรู้พื้นฐานของ Marketing Automation และวิธีเริ่มต้นใช้งานสำหรับธุรกิจของคุณ", - "image": "/images/blog/marketing-automation-guide.jpg", - "date": "2026-03-01", - "category": "Marketing", - "content": { - "type": "doc", - "content": [ - { "type": "heading", "attrs": { "level": 2 }, "content": [{ "type": "text", "text": "Marketing Automation คืออะไร" }] }, - { "type": "paragraph", "content": [{ "type": "text", "text": "Marketing Automation คือการใช้ซอฟต์แวร์เพื่อ automate การตลาดซ้ำๆ เช่น การส่งอีเมล การโพสต์โซเชียลมีเดีย และการวิเคราะห์ข้อมูล" }] } - ] - } - } - } - ] - } -} \ No newline at end of file diff --git a/count-cols.cjs b/count-cols.cjs deleted file mode 100644 index 31ab589..0000000 --- a/count-cols.cjs +++ /dev/null @@ -1,19 +0,0 @@ -const seed = require('./seed/seed.json'); -const Database = require('better-sqlite3'); -const db = new Database('./data.db'); - -const cols = ['title','subtitle','badge','hero_image', - 'feature1_icon','feature1_title','feature1_desc', - 'feature2_icon','feature2_title','feature2_desc', - 'feature3_icon','feature3_title','feature3_desc', - 'feature4_icon','feature4_title','feature4_desc', - 'feature5_icon','feature5_title','feature5_desc', - 'feature6_icon','feature6_title','feature6_desc']; - -const placeholders = cols.map(() => '?').join(', '); -const sql = `INSERT OR REPLACE INTO ec_services (id, slug, status, ${cols.join(', ')}, created_at, updated_at, published_at) VALUES (?, ?, 'published', ${placeholders}, datetime('now'), datetime('now'), datetime('now'))`; - -console.log('Columns:', 3 + cols.length); // id, slug, status + cols -console.log('SQL placeholders:', (sql.match(/\?/g) || []).length); - -db.close(); \ No newline at end of file diff --git a/data.db b/data.db deleted file mode 100644 index ed474dac663d475f61f41a52cf291a119a40fec2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1048576 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 - -import type { ContentBylineCredit, PortableTextBlock } from "emdash"; - -export interface Blog { - id: string; - slug: string | null; - status: string; - title?: string; - excerpt?: string; - image?: { id: string; src?: string; alt?: string; width?: number; height?: number; provider?: string; previewUrl?: string; meta?: Record }; - date?: string; - category?: string; - content?: PortableTextBlock[]; - createdAt: Date; - updatedAt: Date; - publishedAt: Date | null; - bylines?: ContentBylineCredit[]; -} - -export interface Faq { - id: string; - slug: string | null; - status: string; - category?: string; - question?: string; - answer?: string; - createdAt: Date; - updatedAt: Date; - publishedAt: Date | null; - bylines?: ContentBylineCredit[]; -} - -export interface Page { - id: string; - slug: string | null; - status: string; - title?: string; - subtitle?: string; - badge?: string; - hero_image?: { id: string; src?: string; alt?: string; width?: number; height?: number; provider?: string; previewUrl?: string; meta?: Record }; - theme?: string; - show_cta?: boolean; - cta_text?: string; - cta_link?: string; - variant?: string; - size?: string; - createdAt: Date; - updatedAt: Date; - publishedAt: Date | null; - bylines?: ContentBylineCredit[]; -} - -export interface Portfolio { - id: string; - slug: string | null; - status: string; - name?: string; - url?: string; - category?: string; - category_label?: string; - thumbnail?: { id: string; src?: string; alt?: string; width?: number; height?: number; provider?: string; previewUrl?: string; meta?: Record }; - description?: string; - services?: unknown; - createdAt: Date; - updatedAt: Date; - publishedAt: Date | null; - bylines?: ContentBylineCredit[]; -} - -export interface Service { - id: string; - slug: string | null; - status: string; - title?: string; - subtitle?: string; - badge?: string; - hero_image?: { id: string; src?: string; alt?: string; width?: number; height?: number; provider?: string; previewUrl?: string; meta?: Record }; - content?: PortableTextBlock[]; - features?: unknown; - createdAt: Date; - updatedAt: Date; - publishedAt: Date | null; - bylines?: ContentBylineCredit[]; -} - -export interface Setting { - id: string; - slug: string | null; - status: string; - site_name?: string; - email?: string; - phone?: string; - address?: string; - facebook?: string; - line?: string; - linkedin?: string; - createdAt: Date; - updatedAt: Date; - publishedAt: Date | null; - bylines?: ContentBylineCredit[]; -} - -declare module "emdash" { - interface EmDashCollections { - blog: Blog; - faq: Faq; - pages: Page; - portfolio: Portfolio; - services: Service; - settings: Setting; - } -} \ No newline at end of file diff --git a/seed-all.cjs b/seed-all.cjs deleted file mode 100644 index e150ccf..0000000 --- a/seed-all.cjs +++ /dev/null @@ -1,52 +0,0 @@ -const seed = require('./seed/seed.json'); -const Database = require('better-sqlite3'); -const db = new Database('./data.db'); - -// Helper to get current timestamp -const now = new Date().toISOString(); - -// 1. Seed Pages -const insertPage = db.prepare(` - INSERT OR REPLACE INTO ec_pages (id, slug, status, locale, title, subtitle, badge, hero_image, theme, show_cta, cta_text, cta_link, variant, size, created_at, updated_at, published_at) - VALUES (?, ?, 'published', 'th', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -`); -(seed.content?.pages || []).forEach(p => { - insertPage.run(p.id, p.slug, p.data.title, p.data.subtitle, p.data.badge, p.data.hero_image, p.data.theme, p.data.show_cta ? 1 : 0, p.data.cta_text, p.data.cta_link, p.data.variant, p.data.size, now, now, now); -}); -console.log('Pages seeded:', db.prepare('SELECT COUNT(*) as c FROM ec_pages').get().c); - -// 2. Seed Portfolio -const insertPortfolio = db.prepare(` - INSERT OR REPLACE INTO ec_portfolio (id, slug, status, locale, name, url, category, category_label, thumbnail, description, created_at, updated_at, published_at) - VALUES (?, ?, 'published', 'th', ?, ?, ?, ?, ?, ?, ?, ?, ?) -`); -(seed.content?.portfolio || []).forEach((p, i) => { - const pid = p.id || `portfolio-${String(i + 1).padStart(3, '0')}`; - insertPortfolio.run(pid, p.slug, p.data.name, p.data.url, p.data.category, p.data.category_label, p.data.thumbnail, p.data.description, now, now, now); -}); -console.log('Portfolio seeded:', db.prepare('SELECT COUNT(*) as c FROM ec_portfolio').get().c); - -// 3. Seed Blog -const insertBlog = db.prepare(` - INSERT OR REPLACE INTO ec_blog (id, slug, status, locale, title, excerpt, image, date, category, content, created_at, updated_at, published_at) - VALUES (?, ?, 'published', 'th', ?, ?, ?, ?, ?, ?, ?, ?, ?) -`); -(seed.content?.blog || []).forEach((p, i) => { - const bid = p.id || `blog-${String(i + 1).padStart(3, '0')}`; - insertBlog.run(bid, p.slug, p.data.title, p.data.excerpt, p.data.image, p.data.date, p.data.category, JSON.stringify(p.data.content), now, now, now); -}); -console.log('Blog seeded:', db.prepare('SELECT COUNT(*) as c FROM ec_blog').get().c); - -// 4. Seed FAQ -const insertFaq = db.prepare(` - INSERT OR REPLACE INTO ec_faq (id, slug, status, locale, category, question, answer, created_at, updated_at) - VALUES (?, ?, 'published', 'th', ?, ?, ?, ?, ?) -`); -(seed.content?.faq || []).forEach((p, i) => { - const fid = p.id || `faq-${String(i + 1).padStart(3, '0')}`; - insertFaq.run(fid, p.slug || fid, p.data.category, p.data.question, p.data.answer, now, now); -}); -console.log('FAQ seeded:', db.prepare('SELECT COUNT(*) as c FROM ec_faq').get().c); - -db.close(); -console.log('All seeding complete!'); \ No newline at end of file diff --git a/seed-db.cjs b/seed-db.cjs deleted file mode 100644 index e6dc310..0000000 --- a/seed-db.cjs +++ /dev/null @@ -1,14 +0,0 @@ -const seed = require('./seed/seed.json'); -const Database = require('better-sqlite3'); -const db = new Database('./data.db'); - -// Only seed pages for now -const insertPage = db.prepare( - "INSERT OR REPLACE INTO ec_pages (id, slug, status, title, subtitle, badge, hero_image, theme, show_cta, cta_text, cta_link, variant, size, created_at, updated_at, published_at) VALUES (?, ?, 'published', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now'), datetime('now'), datetime('now'))" -); -(seed.content?.pages || []).forEach(p => { - insertPage.run(p.id, p.slug, p.data.title, p.data.subtitle, p.data.badge, p.data.hero_image, p.data.theme, p.data.show_cta ? 1 : 0, p.data.cta_text, p.data.cta_link, p.data.variant, p.data.size); -}); -console.log('Pages:', db.prepare('SELECT COUNT(*) as c FROM ec_pages').get().c); -db.close(); -console.log('Done'); \ No newline at end of file diff --git a/seed-services.cjs b/seed-services.cjs deleted file mode 100644 index 8333520..0000000 --- a/seed-services.cjs +++ /dev/null @@ -1,26 +0,0 @@ -const seed = require('./seed/seed.json'); -const Database = require('better-sqlite3'); -const db = new Database('./data.db'); - -const cols = ['title','subtitle','badge','category','objective','hero_image', - 'usp_free_server','usp_content_edit', - 'feature1_icon','feature1_title','feature1_desc', - 'feature2_icon','feature2_title','feature2_desc', - 'feature3_icon','feature3_title','feature3_desc', - 'feature4_icon','feature4_title','feature4_desc', - 'feature5_icon','feature5_title','feature5_desc', - 'feature6_icon','feature6_title','feature6_desc']; - -const placeholders = cols.map(() => '?').join(', '); -const sql = `INSERT OR REPLACE INTO ec_services (id, slug, status, ${cols.join(', ')}, created_at, updated_at, published_at) VALUES (?, ?, 'published', ${placeholders}, datetime('now'), datetime('now'), datetime('now'))`; - -const insertService = db.prepare(sql); - -(seed.content?.services || []).forEach(s => { - const vals = [s.id, s.slug]; - cols.forEach(c => vals.push(s.data[c] ?? null)); - insertService.run(...vals); -}); -console.log('Services:', db.prepare('SELECT COUNT(*) as c FROM ec_services').get().c); -db.close(); -console.log('Done'); \ No newline at end of file diff --git a/seed/seed.json b/seed/seed.json deleted file mode 100644 index a1cb54c..0000000 --- a/seed/seed.json +++ /dev/null @@ -1,598 +0,0 @@ -{ - "version": "1", - "collections": [ - { - "slug": "pages", - "label": "Pages", - "fields": [ - { "slug": "title", "type": "string", "label": "Title" }, - { "slug": "subtitle", "type": "string", "label": "Subtitle" }, - { "slug": "badge", "type": "string", "label": "Badge" }, - { "slug": "hero_image", "type": "image", "label": "Hero Image" }, - { "slug": "theme", "type": "select", "label": "Theme", "options": ["yellow", "accent"] }, - { "slug": "show_cta", "type": "boolean", "label": "Show CTA" }, - { "slug": "cta_text", "type": "string", "label": "CTA Text" }, - { "slug": "cta_link", "type": "string", "label": "CTA Link" }, - { "slug": "variant", "type": "select", "label": "Hero Variant", "options": ["split", "centered", "text_only", "floating_cards"] }, - { "slug": "size", "type": "select", "label": "Hero Size", "options": ["full", "compact"] } - ] - }, - { - "slug": "services", - "label": "Services", - "fields": [ - { "slug": "title", "type": "string", "label": "Title" }, - { "slug": "subtitle", "type": "string", "label": "Subtitle" }, - { "slug": "badge", "type": "string", "label": "Badge" }, - { "slug": "category", "type": "select", "label": "Category", "options": ["tech-consult", "marketing-consult"] }, - { "slug": "objective", "type": "string", "label": "Objective (Headline)" }, - { "slug": "hero_image", "type": "image", "label": "Hero Image" }, - { "slug": "usp_free_server", "type": "string", "label": "USP: Free Server Description" }, - { "slug": "usp_content_edit", "type": "string", "label": "USP: Free Content Edit Description" }, - { "slug": "content", "type": "portableText", "label": "Content" }, - { - "slug": "features", - "type": "repeater", - "label": "Features", - "fields": [ - { "slug": "icon", "type": "string", "label": "Icon" }, - { "slug": "feature_title", "type": "string", "label": "Title" }, - { "slug": "description", "type": "string", "label": "Description" } - ] - } - ] - }, - { - "slug": "portfolio", - "label": "Portfolio", - "fields": [ - { "slug": "name", "type": "string", "label": "Name" }, - { "slug": "url", "type": "url", "label": "URL" }, - { "slug": "category", "type": "select", "label": "Category", "options": ["webdev", "ecommerce", "marketing"] }, - { "slug": "category_label", "type": "string", "label": "Category Label" }, - { "slug": "thumbnail", "type": "image", "label": "Thumbnail" }, - { "slug": "description", "type": "text", "label": "Description" }, - { - "slug": "services", - "type": "repeater", - "label": "Services", - "fields": [ - { "slug": "service_name", "type": "string", "label": "Name" } - ] - } - ] - }, - { - "slug": "blog", - "label": "Blog", - "fields": [ - { "slug": "title", "type": "string", "label": "Title" }, - { "slug": "excerpt", "type": "string", "label": "Excerpt" }, - { "slug": "image", "type": "image", "label": "Image" }, - { "slug": "date", "type": "datetime", "label": "Date" }, - { "slug": "category", "type": "string", "label": "Category" }, - { "slug": "content", "type": "portableText", "label": "Content" } - ] - }, - { - "slug": "faq", - "label": "FAQ", - "fields": [ - { "slug": "category", "type": "string", "label": "Category" }, - { "slug": "question", "type": "string", "label": "Question" }, - { "slug": "answer", "type": "text", "label": "Answer" } - ] - }, - { - "slug": "settings", - "label": "Site Settings", - "fields": [ - { "slug": "site_name", "type": "string", "label": "Site Name" }, - { "slug": "email", "type": "string", "label": "Contact Email" }, - { "slug": "phone", "type": "string", "label": "Contact Phone" }, - { "slug": "address", "type": "text", "label": "Address" }, - { "slug": "facebook", "type": "url", "label": "Facebook URL" }, - { "slug": "line", "type": "url", "label": "LINE URL" }, - { "slug": "linkedin", "type": "url", "label": "LinkedIn URL" } - ] - } - ], - "content": { - "pages": [ - { - "id": "page-home", - "slug": "home", - "data": { - "title": "เปลี่ยนธุรกิจของคุณ ด้วย AI และเทคโนโลยีสมัยใหม่", - "subtitle": "รับทำเว็บไซต์ SEO AI Chatbot สำหรับธุรกิจไทย
เพิ่มยอดขาย ลดต้นทุน ด้วยเทคโนโลยีล้ำสมัย", - "badge": "ดิจิทัลเอเจนซี่ในประเทศไทย", - "hero_image": "/images/hero/hero.jpg", - "theme": "yellow", - "variant": "split", - "size": "full", - "show_cta": true, - "cta_text": "เริ่มต้นวันนี้", - "cta_link": "/contact" - } - }, - { - "id": "page-about", - "slug": "about", - "data": { - "title": "เกี่ยวกับ มอร์มินิมอร์", - "subtitle": "บริษัท มอร์มินิมอร์ จำกัด
รับทำเว็บไซต์ SEO AI Chatbot สำหรับธุรกิจไทย", - "badge": "เกี่ยวกับเรา", - "hero_image": "/images/hero/about.jpg", - "theme": "yellow", - "variant": "centered", - "size": "compact", - "show_cta": false - } - }, - { - "id": "page-portfolio", - "slug": "portfolio", - "data": { - "title": "ผลงานของเรา", - "subtitle": "รวมผลงานพัฒนาเว็บไซต์และโปรเจกต์ที่เราภาคภูมิใจ", - "badge": "พอร์ตโฟลิโอ", - "hero_image": "/images/hero/hero.jpg", - "theme": "yellow", - "variant": "text-only", - "size": "compact", - "show_cta": false - } - }, - { - "id": "page-contact", - "slug": "contact", - "data": { - "title": "พูดคุยกับเรา วันนี้เลย!", - "subtitle": "พร้อมให้คำปรึกษาและช่วยเหลือคุณ
ปรึกษาฟรี ไม่มีค่าใช้จ่าย", - "badge": "ติดต่อเรา", - "hero_image": "/images/hero/contact.jpg", - "theme": "yellow", - "variant": "text-only", - "size": "compact", - "show_cta": false - } - }, - { - "id": "page-faq", - "slug": "faq", - "data": { - "title": "คำถามที่พบบ่อย", - "subtitle": "หาคำตอบสำหรับคำถามที่พบบ่อยเกี่ยวกับบริการของเรา", - "badge": "FAQ", - "hero_image": "/images/hero/tech-consult.jpg", - "theme": "yellow", - "variant": "centered", - "size": "compact", - "show_cta": false - } - }, - { - "id": "page-privacy", - "slug": "privacy", - "data": { - "title": "นโยบายความเป็นส่วนตัว", - "subtitle": "มีผลบังคับใช้วันที่ 5 พฤษภาคม 2569", - "badge": "กฎหมาย", - "hero_image": "/images/hero/ai-automation.jpg", - "theme": "yellow", - "variant": "text-only", - "size": "compact", - "show_cta": false - } - }, - { - "id": "page-terms", - "slug": "terms", - "data": { - "title": "เงื่อนไขการให้บริการ", - "subtitle": "มีผลบังคับใช้วันที่ 5 พฤษภาคม 2569", - "badge": "กฎหมาย", - "hero_image": "/images/hero/marketing-automation.jpg", - "theme": "yellow", - "variant": "text-only", - "size": "compact", - "show_cta": false - } - } - ], - "services": [ - { - "id": "service-automation", - "slug": "automation", - "data": { - "title": "Automation Consult", - "subtitle": "Implement specific unique app and AI for business to do automation workflow. ลดต้นทุนและเพิ่มประสิทธิภาพด้วยระบบอัตโนมัติที่ออกแบบมาเฉพาะสำหรับธุรกิจของคุณ", - "badge": "Technology Consult", - "category": "tech-consult", - "objective": "ลดต้นทุนและเวลา", - "hero_image": "/images/hero/automation-consult-hero.jpg", - "usp_free_server": "ลูกค้าที่ใช้บริการ Consult จะได้รับ Server สำหรับ App และ AI ฟรี (สำหรับการใช้งานปกติ) หากต้องการใช้งานหนักหรือ Resource-intensive จะมีค่าใช้จ่ายเพิ่มเติม", - "usp_content_edit": "", - "feature1_icon": "🤖", - "feature1_title": "Workflow Automation", - "feature1_desc": "ออกแบบและ implement ระบบ automation สำหรับงานที่ทำซ้ำๆ เช่น การประมวลผลออร์เดอร์ การจัดการ inventory", - "feature2_icon": "📊", - "feature2_title": "Business Process Optimization", - "feature2_desc": "วิเคราะห์และปรับปรุงกระบวนการทำงานให้มีประสิทธิภาพมากขึ้นด้วยเทคโนโลยีล่าสุด", - "feature3_icon": "🔗", - "feature3_title": "System Integration", - "feature3_desc": "เชื่อมต่อระบบต่างๆ ให้ทำงานร่วมกันอย่างราบรื่น เช่น CRM, ERP, E-commerce", - "feature4_icon": "📱", - "feature4_title": "Custom Application", - "feature4_desc": "พัฒนา application เฉพาะทางสำหรับธุรกิจของคุณที่ไม่สามารถหาซื้อได้ทั่วไป", - "feature5_icon": "🔒", - "feature5_title": "Security & Compliance", - "feature5_desc": "ตรวจสอบและปรับปรุงความปลอดภัยของระบบให้เป็นไปตามมาตรฐาน", - "feature6_icon": "📈", - "feature6_title": "Performance Monitoring", - "feature6_desc": "ติดตามและวัดผลประสิทธิภาพของระบบแบบ real-time" - } - }, - { - "id": "service-ai-consult", - "slug": "ai-consult", - "data": { - "title": "AI Consult", - "subtitle": "Consult service for using AI to improve business workflow and knowledge management. ใช้ AI ให้เป็นประโยชน์สำหรับธุรกิจของคุณอย่างเต็มศักยภาพ", - "badge": "Technology Consult", - "category": "tech-consult", - "objective": "ลดต้นทุนและเวลา", - "hero_image": "/images/hero/ai-consult-hero.jpg", - "usp_free_server": "ลูกค้าที่ใช้บริการ Consult จะได้รับ Server สำหรับ App และ AI ฟรี (สำหรับการใช้งานปกติ) หากต้องการใช้งานหนักหรือ Resource-intensive จะมีค่าใช้จ่ายเพิ่มเติม", - "usp_content_edit": "", - "feature1_icon": "🧠", - "feature1_title": "AI Strategy & Roadmap", - "feature1_desc": "วางแผนการใช้ AI อย่างเป็นระบบเพื่อให้เห็นผลลัพธ์ที่ชัดเจน", - "feature2_icon": "💬", - "feature2_title": "AI Chatbot Implementation", - "feature2_desc": "พัฒนาและ deploy AI Chatbot ที่เข้าใจภาษาไทยและตอบคำถามลูกค้าได้ 24/7", - "feature3_icon": "📝", - "feature3_title": "Knowledge Management", - "feature3_desc": "สร้างระบบจัดการความรู้ด้วย AI ที่ช่วยให้การค้นหาและใช้งานข้อมูลง่ายขึ้น", - "feature4_icon": "🎯", - "feature4_title": "AI for Marketing", - "feature4_desc": "ใช้ AI วิเคราะห์ลูกค้าและสร้างแคมเปญการตลาดที่มีประสิทธิภาพ", - "feature5_icon": "🔍", - "feature5_title": "AI Audit", - "feature5_desc": "วิเคราะห์ว่าธุรกิจของคุณควรใช้ AI ตัวไหนและอย่างไร", - "feature6_icon": "🚀", - "feature6_title": "AI Implementation Support", - "feature6_desc": "ดูแลและให้คำปรึกษาตลอดการ implement AI ในองค์กร" - } - }, - { - "id": "service-online-marketing", - "slug": "online-marketing", - "data": { - "title": "Online Marketing Automation", - "subtitle": "Use AI to help generate and manage marketing workflow. เพิ่มยอดขายด้วยระบบอัตโนมัติทางการตลาดที่ขับเคลื่อนด้วย AI", - "badge": "Marketing Consult", - "category": "marketing-consult", - "objective": "เพิ่มยอดขาย", - "hero_image": "/images/hero/online-marketing-hero.jpg", - "usp_free_server": "", - "usp_content_edit": "", - "feature1_icon": "📧", - "feature1_title": "Email Marketing Automation", - "feature1_desc": "สร้าง email campaign อัตโนมัติด้วย AI ที่ personalize ข้อความตามพฤติกรรมลูกค้า", - "feature2_icon": "💬", - "feature2_title": "Social Media Automation", - "feature2_desc": "กำหนดเวลาโพสต์และตอบสนองอัตโนมัติด้วย AI ที่เข้าใจบริบท", - "feature3_icon": "🎯", - "feature3_title": "Lead Generation AI", - "feature3_desc": "ใช้ AI หาและให้คะแนน leads ที่มีโอกาส conversion สูงสุด", - "feature4_icon": "📊", - "feature4_title": "Marketing Analytics", - "feature4_desc": "วิเคราะห์ข้อมูลการตลาดและให้คำแนะนำด้วย AI เพื่อปรับปรุง ROI", - "feature5_icon": "🔄", - "feature5_title": "Workflow Automation", - "feature5_desc": "สร้าง marketing workflow อัตโนมัติตั้งแต่ lead จนถึง sale", - "feature6_icon": "📱", - "feature6_title": "Multi-channel Integration", - "feature6_desc": "เชื่อมต่อทุกช่องทางการตลาดให้ทำงานร่วมกันอย่างไร้รอยต่อ" - } - }, - { - "id": "service-webdev", - "slug": "webdev", - "data": { - "title": "Website Development", - "subtitle": "Implement website for business and integrate the website with marketing workflow. เว็บไซต์ที่ทันสมัย รวดเร็ว และเชื่อมต่อกับระบบการตลาดอย่างไร้รอยต่อ", - "badge": "Marketing Consult", - "category": "marketing-consult", - "objective": "เพิ่มยอดขาย", - "hero_image": "/images/hero/web-development-hero.jpg", - "usp_free_server": "", - "usp_content_edit": "ลูกค้าที่ใช้ Server ของเราจะได้รับบริการแก้ไขและเพิ่มเนื้อหาเว็บไซต์ฟรี! จ่ายเฉพาะเมื่อต้องการ Redesign ทั้งหมด หรือ Upgrade ฟีเจอร์ใหญ่ เช่น เพิ่มระบบ E-commerce", - "feature1_icon": "⚡", - "feature1_title": "Fast & Modern", - "feature1_desc": "โหลดเร็ว รองรับการขยายตัวของธุรกิจ และใช้เทคโนโลยีล่าสุด", - "feature2_icon": "📱", - "feature2_title": "Responsive Design", - "feature2_desc": "แสดงผลได้ดีบนทุกอุปกรณ์ ทั้ง mobile tablet และ desktop", - "feature3_icon": "🎨", - "feature3_title": "SEO Optimized", - "feature3_desc": "ออกแบบมาเพื่อให้ Google ชอบ ช่วยให้ติดอันดับได้ง่ายขึ้น", - "feature4_icon": "🔗", - "feature4_title": "Marketing Integration", - "feature4_desc": "เชื่อมต่อกับระบบ CRM, Email Marketing และ Analytics ได้อย่างไร้รอยต่อ", - "feature5_icon": "📊", - "feature5_title": "Analytics Dashboard", - "feature5_desc": "ติดตามผู้เข้าชมและวัดผลได้แบบ real-time", - "feature6_icon": "🔒", - "feature6_title": "Security", - "feature6_desc": "Security ระดับสูง ป้องกันการโจมตีและข้อมูลรั่วไหล" - } - } - ], - "portfolio": [ - { - "id": "portfolio-001", - "slug": "lungfinler", - "data": { - "name": "Lungfinler", - "url": "https://lungfinler.com", - "category": "webdev", - "category_label": "พัฒนาเว็บไซต์", - "thumbnail": "/images/portfolio/lungfinler.png", - "description": "Digital Agency - บริการด้านการสร้างแบรนด์ กราฟิกดีไซน์ และถ่ายภาพสินค้าคุณภาพสูง" - } - }, - { - "id": "portfolio-002", - "slug": "jetindustries", - "data": { - "name": "Jet Industries", - "url": "https://jetindustries.co.th", - "category": "webdev", - "category_label": "พัฒนาเว็บไซต์", - "thumbnail": "/images/portfolio/jetindustries.png", - "description": "ผู้ผลิตพลาสติกฉีดขึ้นรูปอย่างแม่นยำ (Precision Plastic Injection Molding) มีประสบการณ์กว่า 40 ปี" - } - }, - { - "id": "portfolio-003", - "slug": "lawyernoom", - "data": { - "name": "สำนักงานกฎหมาย ตถาตา", - "url": "https://lawyernoom.com", - "category": "webdev", - "category_label": "พัฒนาเว็บไซต์", - "thumbnail": "/images/portfolio/lawyernoom.png", - "description": "สำนักงานกฎหมายโดย ทนายความ คมสัน ศรีวนิชย์ - บริการด้านคดีความ คดีแพ่ง คดีอาญา" - } - }, - { - "id": "portfolio-004", - "slug": "underdog", - "data": { - "name": "Underdog Marketing", - "url": "https://underdog.run", - "category": "webdev", - "category_label": "พัฒนาเว็บไซต์", - "thumbnail": "/images/portfolio/underdog.png", - "description": "บล็อกการตลาดและการขายสไตล์ ลุยไม่ยั้ง โดย บุ้ง ดีดติ่งหู" - } - }, - { - "id": "portfolio-005", - "slug": "baofuling", - "data": { - "name": "Baofuling Shop", - "url": "https://baofulingshop.com", - "category": "ecommerce", - "category_label": "อีคอมเมิร์ซ", - "thumbnail": "/images/portfolio/baofuling.png", - "description": "ร้านค้าออนไลน์ครีมบัวหิมะและผลิตภัณฑ์ความงามจีน" - } - }, - { - "id": "portfolio-006", - "slug": "trainersunny", - "data": { - "name": "เทรนเนอร์ซันนี่", - "url": "https://trainersunny.com", - "category": "webdev", - "category_label": "พัฒนาเว็บไซต์", - "thumbnail": "/images/portfolio/trainersunny.png", - "description": "ผู้เชี่ยวชาญด้านการพัฒนาบุคลากรและ Soft Skill" - } - }, - { - "id": "portfolio-007", - "slug": "luadjob", - "data": { - "name": "เลือดจระเข้วานิไทย", - "url": "https://เลือดจระเข้วานิไทย.com", - "category": "ecommerce", - "category_label": "อีคอมเมิร์ซ", - "thumbnail": "/images/portfolio/luadjob.png", - "description": "ตัวแทนจำหน่ายเลือดจระเข้วานิไทยอย่างเป็นทางการ" - } - }, - { - "id": "portfolio-008", - "slug": "tuanthong", - "data": { - "name": "ทวนทอง 99", - "url": "https://tuanthong99.com", - "category": "ecommerce", - "category_label": "อีคอมเมิร์ซ", - "thumbnail": "/images/portfolio/tuanthong.png", - "description": "ร้านค้าออนไลน์สมุนไพรไทยคุณภาพสูง" - } - }, - { - "id": "portfolio-009", - "slug": "odooportal", - "data": { - "name": "Odoo Portal", - "url": "https://odooportal.com", - "category": "marketing", - "category_label": "ที่ปรึกษาการตลาด", - "thumbnail": "/images/portfolio/odooportal.png", - "description": "ตัวแทนจำหน่าย Odoo อย่างเป็นทางการในประเทศไทย" - } - } - ], - "faq": [ - { - "id": "faq-001", - "slug": "service-001", - "data": { "category": "บริการ", "category_icon": "🎯", "question": "MoreminiMore ให้บริการอะไรบ้าง?", "answer": "เราให้บริการ 4 ประเภทหลัก: พัฒนาเว็บไซต์, Marketing Automation, AI Automation และ Tech Consult สำหรับธุรกิจไทย" } - }, - { - "id": "faq-002", - "slug": "service-002", - "data": { "category": "บริการ", "category_icon": "🎯", "question": "สามารถสั่งทำเว็บไซต์เฉพาะประเภทได้ไหม?", "answer": "ได้ เราสามารถพัฒนาเว็บไซต์ได้ทุกประเภท ไม่ว่าจะเป็นเว็บบริษัท เว็บขายของ เว็บ Landing Page หรือระบบ Web Application" } - }, - { - "id": "faq-003", - "slug": "service-003", - "data": { "category": "บริการ", "category_icon": "🎯", "question": "AI Chatbot สามารถทำอะไรได้บ้าง?", "answer": "AI Chatbot ของเราสามารถตอบคำถามลูกค้า รับออร์เดอร์ นัดหมาย และเชื่อมต่อกับระบบ CRM หรือร้านค้าออนไลน์ได้" } - }, - { - "id": "faq-004", - "slug": "price-001", - "data": { "category": "ราคา", "category_icon": "💰", "question": "ราคาเริ่มต้นของการทำเว็บไซต์เท่าไหร่?", "answer": "ราคาเริ่มต้นอยู่ที่ 15,000 บาท ขึ้นอยู่กับความซับซ้อนและฟีเจอร์ที่ต้องการ เราจะประเมินและเสนอราคาหลังจากการปรึกษาฟรี" } - }, - { - "id": "faq-005", - "slug": "price-002", - "data": { "category": "ราคา", "category_icon": "💰", "question": "มีราคาแพ็คเกจหรือไม่?", "answer": "มี เรามีแพ็คเกจสำหรับธุรกิจที่ต้องการเริ่มต้นอย่างง่ายๆ และแพ็คเกจสำหรับธุรกิจที่ต้องการระบบครบวงจร สามารถเลือกได้ตามความต้องการ" } - }, - { - "id": "faq-006", - "slug": "price-003", - "data": { "category": "ราคา", "category_icon": "💰", "question": "ชำระเงินอย่างไร?", "answer": "รองรับการชำระเงินผ่านโอนเงินธนาคาร หรือผ่อนชำระผ่านบัตรเครดิต 3-6 งวด (มีดอกเบี้ย)" } - }, - { - "id": "faq-007", - "slug": "time-001", - "data": { "category": "ระยะเวลา", "category_icon": "⏱️", "question": "ใช้เวลาพัฒนานานเท่าไหร่?", "answer": "ขึ้นอยู่กับความซับซ้อน Landing Page ใช้เวลา 1-2 สัปดาห์ เว็บไซต์ขนาดกลาง 2-4 สัปดาห์ ระบบ Web Application 4-8 สัปดาห์" } - }, - { - "id": "faq-008", - "slug": "time-002", - "data": { "category": "ระยะเวลา", "category_icon": "⏱️", "question": "ถ้าต้องการด่วนได้ไหม?", "answer": "ได้ เรามีบริการด่วนพิเศษ (เพิ่มค่าใช้จ่าย 30%) สามารถส่งมอบงานได้เร็วขึ้น 50%" } - }, - { - "id": "faq-009", - "slug": "support-001", - "data": { "category": "หลังการขาย", "category_icon": "💬", "question": "มีการรับประกันหรือไม่?", "answer": "เรารับประกันงาน 30 วันหลังส่งมอบ หากมีปัญหาจากการพัฒนา เราจะแก้ไขให้ฟรี" } - }, - { - "id": "faq-010", - "slug": "support-002", - "data": { "category": "หลังการขาย", "category_icon": "💬", "question": "มีบริการดูแลหลังการขายไหม?", "answer": "มี เรามีแพ็คเกจดูแลรายเดือนเริ่มต้นที่ 2,000 บาท/เดือน รวมการอัพเดทเนื้อหา ปรับปรุงความปลอดภัย และ Backup" } - } - ], - "blog": [ - { - "id": "post-001", - "slug": "5-ways-ai-increase-sales", - "data": { - "title": "5 วิธีใช้ AI เพิ่มยอดขายให้ธุรกิจของคุณ", - "excerpt": "ค้นพบ 5 วิธีที่ AI สามารถช่วยเพิ่มยอดขายให้ธุรกิจ SMEs ไทย พร้อมตัวอย่างและแนวทางการนำไปใช้จริง", - "image": "/images/blog/5-ways-ai-increase-sales.jpg", - "date": "2026-03-11", - "category": "AI Business", - "content": { - "type": "doc", - "content": [ - { "type": "heading", "attrs": { "level": 2 }, "content": [{ "type": "text", "text": "วิธีที่ 1: ใช้ AI วิเคราะห์ลูกค้าและแนะนำสินค้าที่ตรงใจ" }] }, - { "type": "paragraph", "content": [{ "type": "text", "text": "หนึ่งในความสามารถที่ทรงพลังที่สุดของ AI คือการวิเคราะห์ข้อมูลลูกค้าและค้นหารูปแบบที่มนุษย์อาจมองไม่เห็น AI สามารถวิเคราะห์ว่าลูกค้าแต่ละคนชอบสินค้าประเภทไหน ซื้อในช่วงเวลาไหน และมีพฤติกรรมการซื้ออย่างไร" }] }, - { "type": "heading", "attrs": { "level": 2 }, "content": [{ "type": "text", "text": "วิธีที่ 2: ใช้ Chatbot ดูแลลูกค้าตลอด 24 ชั่วโมง" }] }, - { "type": "paragraph", "content": [{ "type": "text", "text": "ลูกค้าจำนวนมากต้องการได้รับคำตอบทันที ไม่ว่าจะกี่โมง แต่การจ้างพนักงานทำงาน 24 ชั่วโมงนั้นมีค่าใช้จ่ายสูง Chatbot ที่ใช้ AI สามารถตอบคำถามลูกค้าได้ตลอดเวลา โดยไม่ต้องเสียค่าล่วงเวลา" }] }, - { "type": "heading", "attrs": { "level": 2 }, "content": [{ "type": "text", "text": "วิธีที่ 3: ใช้ AI ส่งข้อความการตลาดในเวลาที่เหมาะสม" }] }, - { "type": "paragraph", "content": [{ "type": "text", "text": "การส่งข้อความการตลาดไม่ใช่แค่การส่งออกไปเท่านั้น แต่ต้องส่งในเวลาที่ลูกค้ามีโอกาสอ่านและตอบสนองมากที่สุด AI สามารถวิเคราะห์ว่าลูกค้าแต่ละคนมีช่วงเวลาไหนที่เปิดอ่านข้อความบ่อยที่สุด และส่งในเวลานั้น" }] }, - { "type": "heading", "attrs": { "level": 2 }, "content": [{ "type": "text", "text": "วิธีที่ 4: ใช้ AI สร้างเนื้อหาการตลาด" }] }, - { "type": "paragraph", "content": [{ "type": "text", "text": "เนื้อหาการตลาดที่ดีเป็นหัวใจสำคัญในการดึงดูดลูกค้า แต่การสร้างเนื้อหาที่มีคุณภาพตลอดเวลาต้องใช้เวลาและทรัพยากรมาก AI สามารถช่วยสร้างเนื้อหาได้เร็วขึ้น ไม่ว่าจะเป็นโพสต์เฟซบุ๊ก คำบรรยายสินค้า อีเมลการตลาด หรือบทความบล็อก" }] }, - { "type": "heading", "attrs": { "level": 2 }, "content": [{ "type": "text", "text": "วิธีที่ 5: ใช้ AI ทำนายแนวโน้มและวางแผนสินค้า" }] }, - { "type": "paragraph", "content": [{ "type": "text", "text": "การมีสินค้าคงคลงเป็นสิ่งจำเป็นสำหรับธุรกิจค้าปลีก แต่การมีสินค้ามากเกินไปก็เป็นปัญหา AI สามารถวิเคราะห์ข้อมูลยอดขายในอดีต ฤดูกาล และปัจจัยอื่นๆ เพื่อทำนายว่าควรสั่งสินค้าเท่าไหร่ในแต่ละช่วง" }] } - ] - } - } - }, - { - "id": "post-002", - "slug": "ai-content-google-love", - "data": { - "title": "วิธีสร้าง Content ด้วย AI ที่ Google รัก", - "excerpt": "เรียนรู้วิธีการใช้ AI ช่วยสร้างเนื้อหาการตลาดที่มีคุณภาพและได้รับการจัดอันดับดีจาก Google พร้อมเทคนิคและตัวอย่างจริง", - "image": "/images/blog/ai-content-google-love.jpg", - "date": "2026-03-10", - "category": "AI Content", - "content": { - "type": "doc", - "content": [ - { "type": "heading", "attrs": { "level": 2 }, "content": [{ "type": "text", "text": "ทำไม AI Content ต้องมีคุณภาพ" }] }, - { "type": "paragraph", "content": [{ "type": "text", "text": "Google มีอัลกอริทึมที่ฉลาดมาก สามารถแยกแยะได้ว่าเนื้อหาที่สร้างโดย AI มีคุณภาพหรือไม่ เนื้อหาที่ไม่มีคุณค่า สร้างขึ้นแค่เพื่อใส่คีย์เวิร์ด จะถูกลงโทษและไม่ติดอันดับ" }] }, - { "type": "heading", "attrs": { "level": 2 }, "content": [{ "type": "text", "text": "วิธีใช้ AI สร้างเนื้อหาที่ดี" }] }, - { "type": "paragraph", "content": [{ "type": "text", "text": "ใช้ AI เป็นผู้ช่วย ไม่ใช่ผู้เขียนทั้งหมด วิธีที่ดีที่สุดคือใช้ AI ช่วยในบางส่วน เช่น รวบรวมข้อมูล สร้างโครงสร้าง หรือเขียน draft แล้วนำมาปรับแก้ด้วยมนุษย์" }] } - ] - } - } - }, - { - "id": "post-003", - "slug": "ai-for-sme-thailand", - "data": { - "title": "AI สำหรับ SME ไทย: คู่มือฉบับสมบูรณ์", - "excerpt": "การใช้ AI สำหรับธุรกิจ SME ไทยเพื่อเพิ่มขีดความสามารถในการแข่งขัน พร้อมแนวทางปฏิบัติจริง", - "image": "/images/blog/ai-for-sme-thailand.jpg", - "date": "2026-03-08", - "category": "AI Business", - "content": { - "type": "doc", - "content": [ - { "type": "heading", "attrs": { "level": 2 }, "content": [{ "type": "text", "text": "ทำไม SME ต้องใช้ AI" }] }, - { "type": "paragraph", "content": [{ "type": "text", "text": "AI ไม่ใช่เทคโนโลยีสำหรับบริษัทใหญ่เท่านั้น ธุรกิจ SME สามารถเริ่มใช้ประโยชน์จาก AI ได้ง่ายๆ ด้วยเครื่องมือที่เข้าถึงได้" }] } - ] - } - } - }, - { - "id": "post-004", - "slug": "digital-transformation-guide", - "data": { - "title": "คู่มือ Digital Transformation ฉบับสมบูรณ์", - "excerpt": "การ transform ธุรกิจของคุณสู่ดิจิทัลอย่างครบวงจร ตั้งแต่การวางแผนจนถึงการ Implement", - "image": "/images/blog/digital-transformation.jpg", - "date": "2026-03-05", - "category": "Business", - "content": { - "type": "doc", - "content": [ - { "type": "heading", "attrs": { "level": 2 }, "content": [{ "type": "text", "text": "Digital Transformation คืออะไร" }] }, - { "type": "paragraph", "content": [{ "type": "text", "text": "Digital Transformation คือการนำเทคโนโลยีดิจิทัลมาใช้ในทุกด้านของธุรกิจ เพื่อเพิ่มประสิทธิภาพและสร้างคุณค่าใหม่ให้กับลูกค้า" }] } - ] - } - } - }, - { - "id": "post-005", - "slug": "marketing-automation-guide", - "data": { - "title": "Marketing Automation: คู่มือเริ่มต้น", - "excerpt": "เรียนรู้พื้นฐานของ Marketing Automation และวิธีเริ่มต้นใช้งานสำหรับธุรกิจของคุณ", - "image": "/images/blog/marketing-automation-guide.jpg", - "date": "2026-03-01", - "category": "Marketing", - "content": { - "type": "doc", - "content": [ - { "type": "heading", "attrs": { "level": 2 }, "content": [{ "type": "text", "text": "Marketing Automation คืออะไร" }] }, - { "type": "paragraph", "content": [{ "type": "text", "text": "Marketing Automation คือการใช้ซอฟต์แวร์เพื่อ automate การตลาดซ้ำๆ เช่น การส่งอีเมล การโพสต์โซเชียลมีเดีย และการวิเคราะห์ข้อมูล" }] } - ] - } - } - } - ] - } -} \ No newline at end of file