# Quick Prompts - Tạo Form

## Prompt đầy đủ

```
Tạo form [TẠO MỚI/CHỈNH SỬA] [TÊN MODULE]

**Routes:**
- Create: [path create]
- Edit: [path edit với :id]

**Form Fields:**

1. [Field name]
   - Type: [text/select/date/file/textarea/number]
   - Label: [label]
   - Validation: [rules]
   - Placeholder/Options: [...]

2. [Field name]
   - Type: [...]
   - Label: [...]
   - Validation: [...]

[... other fields]

**Special:**
- [ ] File upload
- [ ] Dynamic fields
- [ ] Conditional validation
- [ ] v-select with API
- [ ] Date picker

**API:**
- Service: [service name]
- Get: getById
- Create: create
- Update: update

**After submit:**
- Success: redirect to [route] with toast
```

## Prompt nhanh

```
Tạo form [TẠO/SỬA] [MODULE]
- Route: [create path], [edit path]
- Fields: [field1 (type, validation)], [field2 (type, validation)], ...
- Service: [service name]
- Redirect: [route name]
```

## Ví dụ

### Ví dụ 1: Form khách hàng
```
Tạo form TẠO/SỬA Khách hàng
- Route: /khach-hang/tao-moi, /khach-hang/:id/chinh-sua
- Fields:
  * Tên (text, required, min:3)
  * Email (text, required, email)
  * SĐT (text, required, phone VN)
  * Địa chỉ (textarea, optional)
  * Loại KH (v-select, required, load từ API)
  * Ghi chú (textarea, optional, max:500)
- Service: customerService
- Redirect: CustomerList
```

### Ví dụ 2: Form sản phẩm với upload
```
Tạo form TẠO/SỬA Sản phẩm
- Route: /san-pham/tao-moi, /san-pham/:id/chinh-sua
- Fields:
  * Tên (text, required, min:3, max:200)
  * SKU (text, required, unique)
  * Danh mục (v-select, required, load từ categoryService)
  * Giá (number/v-money3, required, min:0)
  * Mô tả (textarea, optional, max:1000)
  * Hình ảnh (file upload, multiple, max:5, images only)
- Special: File upload với preview
- Service: productService
- Redirect: ProductList
```

### Ví dụ 3: Form đơn hàng phức tạp
```
Tạo form TẠO/SỬA Đơn hàng
- Route: /don-hang/tao-moi, /don-hang/:id/chinh-sua
- Fields:
  * Khách hàng (v-select, required, search API)
  * Ngày giao (date picker, required)
  * Địa chỉ giao (textarea, required)
  * Sản phẩm (dynamic fields - add/remove rows)
    - Sản phẩm (v-select)
    - Số lượng (number, min:1)
    - Đơn giá (number, readonly, auto-fill)
    - Thành tiền (number, readonly, calculated)
  * Ghi chú (textarea, optional)
  * Tổng tiền (number, readonly, calculated)
- Special: Dynamic fields, auto-calculate, conditional validation
- Service: orderService
- Redirect: OrderList
```

## Common Validation Rules

```javascript
// Text
required, min:3, max:200

// Email
required, email

// Phone Vietnam
required, regex:/^(0|\+84)[0-9]{9,10}$/

// Number
required, min:0, max:999999

// Select
required

// File
required, max:5, image, maxSize:5MB

// Conditional
requiredIf:otherField

// Custom
custom:functionName
```

## Checklist

Sau khi tạo, kiểm tra:
- [ ] Form hiển thị đúng ở mode create
- [ ] Form load data đúng ở mode edit
- [ ] Tất cả validations hoạt động
- [ ] Error messages hiển thị tiếng Việt
- [ ] Submit button disabled khi invalid
- [ ] Loading state khi submit
- [ ] Success toast và redirect
- [ ] Error toast khi fail
- [ ] File upload hoạt động (nếu có)
- [ ] Dynamic fields hoạt động (nếu có)
- [ ] Auto-calculate hoạt động (nếu có)
- [ ] Responsive design
