93 lines
3.2 KiB
Markdown
93 lines
3.2 KiB
Markdown
# 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
|