# Contact Form API Kullanım Kılavuzu

## Yapılandırma

### 1. Environment Variables (.env dosyası)

`.env` dosyanıza aşağıdaki satırları ekleyin ve kendi bilgilerinizle güncelleyin:

```env
# Backend Credentials for Contact Form
BACKEND_EMAIL='your-admin-email@example.com'
BACKEND_PASSWORD='your-admin-password'
```

### 2. Backend API Endpoint'leri

Contact form sistemi aşağıdaki backend endpoint'lerini kullanır:

- **Login:** `http://127.0.0.1:8000/api/v1/auth/jwt/create/`
- **Contact Create:** `http://127.0.0.1:8000/api/v1/contact/create/`

## Nasıl Çalışır?

### Server-Side Flow (Nuxt Server API)

1. Kullanıcı formu doldurur ve gönderir
2. Frontend `/api/contact/post.create` endpoint'ine POST request gönderir
3. Nuxt server API:
   - `.env` dosyasından admin credentials'ları alır
   - Backend'e login olur ve JWT token alır
   - Token ile contact form verisini backend'e gönderir
4. Backend'den gelen response frontend'e iletilir

### Güvenlik

- **Admin credentials** sadece server-side'da saklanır (`.env` dosyası)
- Client-side'da hiçbir zaman admin şifresi görünmez
- Her form gönderiminde otomatik login yapılır
- JWT token sadece server-side'da kullanılır

## Form Alanları

Contact form aşağıdaki zorunlu alanları içerir:

```typescript
{
  name: string,      // İsim
  email: string,     // E-posta
  ip: string,        // IP Adresi (server-side otomatik eklenir)
  subject: string,   // Konu
  message: string    // Mesaj
}
```

**Not:** IP adresi kullanıcıdan alınmaz, server-side'da otomatik olarak tespit edilir ve backend'e gönderilir.

## Frontend Kullanımı

Form zaten `app/pages/index.vue` sayfasında entegre edilmiştir. Kullanıcı:

1. Formu doldurur
2. Turnstile captcha'yı tamamlar
3. "Send Message" butonuna tıklar
4. Başarılı/hatalı mesaj görür

## API Response

### Başarılı Response:
```json
{
  "success": true,
  "data": { /* backend response */ },
  "message": "Mesajınız başarıyla gönderildi"
}
```

### Hata Response:
```json
{
  "statusCode": 400,
  "statusMessage": "Tüm alanlar zorunludur: name, email, subject, message"
}
```

## Test Etme

1. Sunucuyu başlatın: `npm run dev`
2. Anasayfaya gidin: `http://localhost:3000`
3. Contact bölümüne scroll edin
4. Formu doldurun ve gönderin

## Hata Ayıklama

Konsol loglarını kontrol edin:
```bash
# Server-side logs
Terminal'de Nuxt server logları

# Client-side logs
Browser Console
```

## Önemli Notlar

- ⚠️ `.env` dosyasını asla Git'e commit etmeyin
- ✅ Production'da gerçek admin credentials kullanın
- ✅ Backend'inizde contact endpoint'inin aktif olduğundan emin olun
- ✅ Turnstile Cloudflare doğrulaması aktif

