# Dokumentasi Reset Password API

## Daftar Isi

1. [Pengenalan](#pengenalan)
2. [Endpoint Reset Password](#endpoint-reset-password)
3. [Pengujian di Postman](#pengujian-di-postman)
4. [Tampilan Email](#tampilan-email)
5. [Troubleshooting](#troubleshooting)

## Pengenalan

API Reset Password memungkinkan pengguna untuk mereset password mereka jika lupa. Sistem menggunakan PIN 6 digit yang dikirim ke email pengguna. Email reset password memiliki tampilan yang profesional dan berisi PIN yang dapat digunakan untuk mereset password.

## Endpoint Reset Password

### 1. Request Reset Password (Kirim PIN)

- **URL**: 
  - Untuk pelanggan: `/api/pelanggan/forgot-password`
  - Untuk penjahit: `/api/penjahit/forgot-password`
- **Method**: `POST`
- **Headers**:
  ```
  Accept: application/json
  Content-Type: application/json
  ```
- **Body**:
  ```json
  {
      "email": "email@example.com"
  }
  ```
- **Response Sukses** (200):
  ```json
  {
      "success": true,
      "data": {
          "message": "PIN reset password telah dikirim ke email Anda"
      },
      "message": "Kami sudah mengirim PIN reset password ke email Anda"
  }
  ```
- **Response Error** (404):
  ```json
  {
      "success": false,
      "message": "Error.",
      "data": {
          "email": "Email tidak ditemukan"
      }
  }
  ```

### 2. Reset Password (Gunakan PIN)

- **URL**: 
  - Untuk pelanggan: `/api/pelanggan/reset-password`
  - Untuk penjahit: `/api/penjahit/reset-password`
- **Method**: `POST`
- **Headers**:
  ```
  Accept: application/json
  Content-Type: application/json
  ```
- **Body**:
  ```json
  {
      "email": "email@example.com",
      "password": "password_baru",
      "password_confirmation": "password_baru",
      "pin": "123456"
  }
  ```
- **Response Sukses** (200):
  ```json
  {
      "success": true,
      "data": [],
      "message": "Password berhasil direset"
  }
  ```
- **Response Error** (400):
  ```json
  {
      "success": false,
      "message": "Error.",
      "data": {
          "pin": "PIN tidak valid atau sudah kadaluarsa"
      }
  }
  ```

## Pengujian di Postman

### Persiapan Collection

1. Buka Postman dan buat collection baru bernama "Project Jahit API"
2. Tambahkan environment variable:
   - `base_url`: `http://localhost:8000/api`
   - `email`: `email@example.com` (ganti dengan email yang terdaftar)

### Langkah-langkah Pengujian

#### 1. Meminta PIN Reset Password

1. **Buat Request**:
   - Method: `POST`
   - URL: `{{base_url}}/pelanggan/forgot-password` (untuk pelanggan) atau `{{base_url}}/penjahit/forgot-password` (untuk penjahit)
   - Headers:
     ```
     Accept: application/json
     Content-Type: application/json
     ```
   - Body (raw JSON):
     ```json
     {
         "email": "{{email}}"
     }
     ```

2. **Kirim Request**:
   - Klik tombol "Send"
   - Pastikan mendapat response sukses (200)
   - Pesan sukses: "PIN reset password telah dikirim ke email Anda"

3. **Cek Email**:
   - Buka email yang terdaftar
   - Anda akan menerima email dengan tampilan profesional
   - Email berisi PIN 6 digit untuk reset password
   - Catat PIN tersebut untuk langkah berikutnya

#### 2. Reset Password dengan PIN

1. **Buat Request**:
   - Method: `POST`
   - URL: `{{base_url}}/pelanggan/reset-password` (untuk pelanggan) atau `{{base_url}}/penjahit/reset-password` (untuk penjahit)
   - Headers:
     ```
     Accept: application/json
     Content-Type: application/json
     ```
   - Body (raw JSON):
     ```json
     {
         "email": "{{email}}",
         "password": "password_baru",
         "password_confirmation": "password_baru",
         "pin": "123456"  // Ganti dengan PIN yang diterima di email
     }
     ```

2. **Kirim Request**:
   - Klik tombol "Send"
   - Pastikan mendapat response sukses (200)
   - Pesan sukses: "Password berhasil direset"

3. **Verifikasi Password Baru**:
   - Coba login dengan password baru
   - Pastikan bisa masuk ke sistem

## Tampilan Email

Email reset password memiliki tampilan profesional dengan:

- Logo aplikasi di header
- Judul "Reset Password"
- Salam personal dengan nama pengguna
- PIN reset password dalam kotak yang menonjol
- Informasi keamanan dan masa berlaku PIN
- Footer dengan informasi kontak dan copyright

Email dirancang untuk mudah dibaca di berbagai perangkat dan klien email.

## Troubleshooting

### Error Umum:

1. **"Email tidak ditemukan"**
   - Pastikan menggunakan email yang sudah terdaftar
   - Pastikan menggunakan endpoint yang sesuai (pelanggan/penjahit)
   - Cek penulisan email

2. **"PIN tidak valid atau sudah kadaluarsa"**
   - Pastikan menggunakan PIN terbaru dari email
   - PIN hanya berlaku selama 60 menit
   - PIN harus tepat 6 digit

3. **"Error validasi"**
   - Password minimal 8 karakter
   - Password dan konfirmasi harus sama
   - Email harus valid

### Tips:

- Selalu gunakan PIN terbaru dari email
- Jika PIN expired, ulangi proses dari awal
- Pastikan semua field terisi dengan benar
- Periksa folder spam jika email tidak muncul di inbox
- PIN hanya dapat digunakan satu kali

### Kontak Support:

Jika mengalami masalah, hubungi:

- Email: support@projectjahit.com
- Telepon: (021) xxx-xxxx
