# Seed Scripts for Employees ไฟล์สำหรับ seed พนักงานจาก CSV ## ไฟล์ที่สร้างขึ้น ### 1. `src/db/seed-branches.ts` สร้าง branches ที่จำเป็นต้องใช้กับพนักงานจาก CSV ### 2. `src/db/seed-emp.ts` อ่านพนักงานจากไฟล์ `alla-emp.csv` และ seed เข้า database ## วิธีใช้งาน ### ขั้นตอนที่ 1: Seed Branches ```bash npx tsx src/db/seed-branches.ts ``` สคริปต์นี้จะสร้าง 3 สาขาที่ตรงกับ branch_id ใน CSV: - `b6722de8-562b-4d51-8ad2-1f6df826a772` - สาขาหลัก (ที่ 1) - `c76ce8ec-6062-4e48-9d22-0aaaa6be79b2` - สาขาหลัก (ที่ 2) - `8724a231-108b-4c74-a778-0eafd282edd4` - สาขาหลัก (ที่ 3) ### ขั้นตอนที่ 2: Seed Employees ```bash npx tsx src/db/seed-emp.ts ``` สคริปต์นี้จะ: - อ่านไฟล์ `alla-emp.csv` จาก project root - ตรวจสอบว่าทุก branch_id มีอยู่ใน database หรือไม่ - ตรวจสอบพนักงานที่มีอยู่แล้ว (เพื่อหลีกเลี่ยง duplicate) - Insert พนักงานใหม่เป็น batch 50 คนต่อครั้ง - แสดงรายงานผล ## ข้อมูลใน CSV ไฟล์ `alla-emp.csv` มีโครงสร้างดังนี้: ``` id,employee_id,name,branch_id,pin ``` - `id`: UUID ของพนักงาน - `employee_id`: รหัสพนักงาน (เช่น 00001, 01756, etc.) - `name`: ชื่อพนักงาน - `branch_id`: UUID ของสาขา - `pin`: PIN hash (SHA-256) ## ข้อมูลสรุป - จำนวนพนักงานทั้งหมด: **424 คน** - จำนวนสาขา: **3 สาขา** - PIN เริ่มต้น: ทุกคนใช้ PIN เดียวกัน (hash ของ "1234") ## การจัดการข้อผิดพลาด ### กรณีไม่พบไฟล์ CSV ``` ❌ CSV file not found: .../alla-emp.csv Please make sure alla-emp.csv is in the project root directory. ``` ### กรณีไม่พบ Branch ``` ❌ Missing branches in database: - b6722de8-562b-4d51-8ad2-1f6df826a772 ... ❌ Please run seed.ts first to create branches, or add the missing branches manually. ``` ## การใช้งานซ้ำ หาก run `seed-emp.ts` ซ้ำ: - จะข้ามพนักงานที่มีอยู่แล้ว (based on ID) - เพิ่มเฉพาะพนักงานใหม่ที่ยังไม่มีใน database ## หมายเหตุ - สคริปต์เหล่านี้แยกจาก `seed.ts` ดั้งเดิม - สามารถใช้ร่วมกับ `seed.ts` หรือแยกอิสระก็ได้ - ไม่มีผลกระทบกับข้อมูล candidates, votes, หรือ settings