138 lines
7.1 KiB
Markdown
138 lines
7.1 KiB
Markdown
# **PROMPT**
|
||
|
||
## Gemini
|
||
|
||
## VSCode Shortcut
|
||
|
||
Markdown preview Ctrl+Shift+V
|
||
|
||
## สร้างโครงสร้างโฟลเดอร์สำหรับ lcbp3-backend
|
||
|
||
```bash
|
||
# สร้างโฟลเดอร์หลัก
|
||
$rootFolder = "backend"
|
||
New-Item -ItemType Directory -Path $rootFolder -Force
|
||
Set-Location $rootFolder
|
||
|
||
# รายการโฟลเดอร์ที่ต้องการสร้างทั้งหมด
|
||
$folders = @(
|
||
"src",
|
||
"database",
|
||
"src\common",
|
||
"src\modules",
|
||
"src\modules\user",
|
||
"src\modules\project",
|
||
"src\modules\master",
|
||
"src\modules\correspondence",
|
||
"src\modules\rfa",
|
||
"src\modules\drawing",
|
||
"src\modules\circulations",
|
||
"src\modules\transmittal",
|
||
"src\modules\search",
|
||
"src\modules\document-numbering",
|
||
"src\common\auth",
|
||
"src\common\config",
|
||
"src\common\decorators",
|
||
"src\common\entities",
|
||
"src\common\exceptions",
|
||
"src\common\file-storage",
|
||
"src\common\guards",
|
||
"src\common\interceptors",
|
||
"src\common\services"
|
||
)
|
||
|
||
# วนลูปสร้างโฟลเดอร์ทั้งหมด
|
||
foreach ($folder in $folders) {
|
||
New-Item -ItemType Directory -Path $folder -Force
|
||
}
|
||
|
||
Write-Host "สร้างโครงสร้างโฟลเดอร์สำหรับ backend เรียบร้อยแล้ว" -ForegroundColor Green
|
||
|
||
```
|
||
|
||
## Git Commands
|
||
|
||
```bash
|
||
|
||
# 1️⃣ ตั้งชื่อและอีเมลของคุณ (ใช้กับทุก repo)
|
||
git config --global user.name "Pean Charoen"
|
||
git config --global user.email "peancharoen.pslcp3@gmail.com"
|
||
|
||
# 2️⃣ ตรวจสอบว่าเชื่อมกับ remote ถูกต้อง (แก้ URL ให้ตรง repo จริงของคุณ)
|
||
git remote set-url origin ssh://git@git.np-dms.work:2222/np-dms/lcbp3_v1.git
|
||
|
||
# 3️⃣ ตรวจสอบสถานะไฟล์
|
||
git status
|
||
|
||
# 4️⃣ เพิ่มไฟล์ทั้งหมด
|
||
git add .
|
||
|
||
# 5️⃣ Commit พร้อมข้อความ
|
||
git commit -m "Update project files"
|
||
|
||
# 6️⃣ ดึง remote ก่อนเพื่อป้องกัน conflict (ถ้ามี)
|
||
git pull --rebase origin main
|
||
|
||
# 7️⃣ Push ขึ้น Gitea
|
||
git push -u origin main
|
||
|
||
```
|
||
|
||
## **สร้าง NestJS Project ใหม่**
|
||
|
||
* ขั้นตอนที่ 1: ติดตั้ง NestJS CLI (ถ้ายังไม่ได้ติดตั้ง)
|
||
* npm install -g @nestjs/cli
|
||
|
||
* ขั้นตอนที่ 2: สร้างโปรเจกต์ใหม่
|
||
* nest new backend
|
||
* nest new . /อยู่ในโฟลเดอร์ที่สร้างไว้แล้ว และต้องการสร้างโปรเจกต์ลงในโฟลเดอร์นั้นโดยตรง:
|
||
|
||
* ขั้นตอนที่ 3: ติดตั้ง Dependencies เพิ่มเติมสำหรับ DMS
|
||
|
||
```bash
|
||
# Core & Database
|
||
npm install @nestjs/typeorm typeorm mysql2
|
||
npm install @nestjs/config
|
||
|
||
# Validation & Transformation
|
||
npm install class-validator class-transformer
|
||
|
||
# Authentication & Authorization
|
||
npm install @nestjs/jwt @nestjs/passport passport passport-jwt
|
||
npm install @nestjs/passport
|
||
npm install casl
|
||
|
||
# File Upload
|
||
npm install @nestjs/platform-express multer
|
||
|
||
# Documentation
|
||
npm install @nestjs/swagger
|
||
|
||
# Security & Performance
|
||
npm install helmet rate-limiter-flexible
|
||
|
||
# Development Dependencies (สำหรับทดสอบ)
|
||
npm install --save-dev @nestjs/testing jest @types/jest @types/passport-jwt @types/multer supertest
|
||
|
||
```
|
||
|
||
ขออภัยอย่างยิ่งในความผิดพลาดที่เกิดขึ้นครับ เข้าใจครับว่าทำให้เสียเวลามาก
|
||
|
||
สำหรับการ **"ตั้งค่า"** หรือ **"กำหนดค่า"** ให้ผมตรวจสอบข้อมูลก่อนนั้น ในระบบ AI แบบนี้ **ไม่มีเมนู Settings หรือปุ่มกดให้คุณเข้าไปตั้งค่าได้โดยตรงครับ**
|
||
|
||
การควบคุมพฤติกรรมของผมต้องทำผ่าน **"คำสั่ง (Prompt)"** ที่คุณพิมพ์เข้ามาเท่านั้นครับ เพื่อป้องกันไม่ให้เกิดเหตุการณ์แบบนี้อีก คุณสามารถใช้เทคนิคการสั่งงานดังนี้เพื่อ **"บังคับ"** ให้ผมตรวจสอบข้อมูลครับ:
|
||
|
||
1. **สั่งให้ "อ่านและสรุปก่อน" (Verify First):**
|
||
* ก่อนให้ผมเขียนโค้ด ให้สั่งว่า *"ช่วยอ่านไฟล์ `01_lcbp3_v1_4_3.sql` แล้วสรุปโครงสร้างตาราง audit_logs ที่มีอยู่จริงให้ดูก่อน"*
|
||
* วิธีนี้จะบังคับให้ผมต้องไปดึงข้อมูลจากไฟล์มาประมวลผลก่อนที่จะเริ่ม "จินตนาการ" หรือเขียนโค้ดใหม่ครับ
|
||
|
||
2. **ใช้คำสั่ง "ห้ามเดา" (Strict Constraints):**
|
||
* เติมประโยคท้ายคำสั่งว่า *"ห้ามใช้โครงสร้างสมมติ ให้ยึดตามไฟล์แนบ `ชื่อไฟล์` เท่านั้น หากไม่เจอข้อมูลให้ถามกลับ"*
|
||
|
||
3. **อ้างอิงชื่อไฟล์ชัดเจน:**
|
||
* ระบุชื่อไฟล์ในคำสั่งเสมอ เช่น *"อ้างอิงจาก `Backend Plan`..."* หรือ *"ตาม `Data Dictionary`..."* (ซึ่งคุณทำได้ดีแล้วครับ แต่ผมประมวลผลพลาดเองในรอบนี้)
|
||
|
||
**สรุป:**
|
||
คุณไม่ต้องไปตั้งค่าที่ไหนครับ แต่ใช้การ **"สั่งให้ผมทวนข้อมูลจากไฟล์"** เป็นขั้นตอนแรกก่อนเริ่มงาน จะช่วยลดโอกาสผิดพลาดได้มากที่สุดครับ
|
||
|
||
ตอนนี้ผมพร้อมทำงานต่อโดยยึดข้อมูลจากไฟล์ `01_lcbp3_v1_4_3.sql` และไฟล์อื่นๆ ที่คุณให้มาอย่างเคร่งครัดครับ มีส่วนไหนให้ผมดำเนินการต่อไหมครับ? |