# Flört uygulamaları

Astrolojik uyum, Bumble, Hinge, Tinder, Tantan gibi flört uygulamalarında ve NUiT, Struck gibi astro-first uygulamalarda kullanıcıların elde tutulmasını sağlayan önemli bir faktördür. AstroWay API, Solar Fire lisansına ($495) ve kendi efemeris motoruna gerek kalmadan tek bir çağrıyla hazır bir sinastri puanı (0–100) sunar.

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

1. Kullanıcı kayıt olurken doğum tarihini, saati ve yerini girer
2. Eşleşme sırasında arka uç, her iki kişinin verileriyle `/v1/synastry` endpoint'ine çağrı yapar
3. API `compatibility.score` (0–100) ve `label` (harmonious/balanced/mixed/challenging) değerlerini döndürür
4. Puan, sıralama faktörlerinden biri olarak kullanılır

```
Eşleşme algoritması
  ├── Konum yakınlığı         (40%)
  ├── Ortak ilgi alanları     (30%)
  ├── Astrolojik uyum         (20%)  ← AstroWay API
  └── Diğer sinyaller          (10%)
```

## Ana endpoint'ler

| Endpoint | Krediler | Döndürülenler |
|---|---|---|
| `/v1/synastry` | 50 | Çapraz aspectler + 0–100 puan |
| `/v1/human-design/compatibility` | 100 | HD-uyum (tip + strateji) |
| `/v1/horoscope/compatibility` | 50 | Metin tabanlı uyum analizi |

## Entegrasyon deseni

```ts
// Eşleşme sırasında sinastrinin çağrılması
async function getCompatibility(userA: UserProfile, userB: UserProfile) {
  const result = await astrowayClient.synastry({
    chart1: {
      date: userA.birthDate,
      time: userA.birthTime || '12:00:00', // bilinmiyorsa varsayılan öğle
      timezoneOffset: userA.tzOffset,
      latitude: userA.birthLat,
      longitude: userA.birthLng,
    },
    chart2: {
      date: userB.birthDate,
      time: userB.birthTime || '12:00:00',
      timezoneOffset: userB.tzOffset,
      latitude: userB.birthLat,
      longitude: userB.birthLng,
    },
  });

  return {
    score: result.compatibility.score,      // 0-100
    label: result.compatibility.label,      // "harmonious"
    harmony: result.compatibility.harmony,  // ağırlıklı toplam
    tension: result.compatibility.tension,
  };
}
```

<Aside type="tip">
Sinastri sonucu sadece doğum tarihlerine bağlı olarak değişmez (sabittir). `(userA_id, userB_id)` çiftini kendi veritabanında `(userA_id, userB_id) → puan` olarak önbelleğe al. Bir API çağrısı yeterli, artık yeniden hesaplama gerekmez.
</Aside>

## Bütçe tahmini

### Senaryo: Günde 1.000 yeni eşleşme

| Metrik | Değer |
|---|---|
| Eşleşme/gün | 1.000 |
| Kredi/eşleşme | 50 (sinastri) |
| Kredi/gün | 50.000 |
| Kredi/ay | ~1.500.000 |
| Ücret | **Business ($199/ay, 3.500.000 kredi)** |

### Senaryo: Günde 50 eşleşme (startup)

| Metrik | Değer |
|---|---|
| Eşleşme/gün | 50 |
| Kredi/gün | 2.500 |
| Kredi/ay | ~75.000 |
| Ücret | **Starter ($19/ay, 200.000 kredi)** |

### Optimizasyon

- **Önbelleğe alma** — puanı veritabanında sakla, yeniden hesaplama
- **Tembel işleme** — sinastrinin hesabını sadece kullanıcı eşleşmeyi açtığında yap, tüm potansiyel çiftler için değil
- **Kayıt sırasında toplu hesaplama** — ilk 20 potansiyel eşleşmeyle uyumu hemen hesapla

## Doğum saati bilinmiyorsa

Kullanıcı saati bilmiyorsa `"time": "12:00:00"` (öğle) olarak gönder. Evler daha az doğru olacak, ancak gezegen pozisyonları ve çapraz aspectler doğru olacaktır. Uyum puanı yine de bilgilendirici kalır.

HD-uyum için saat daha önemlidir — hassasiyeti değerlendirmek için `hd/sensitivity` endpoint'ini kullan.

<CardGrid>
  <LinkCard title="Sinastri API →" href="/products/synastry-api/" description="Uyum endpoint'leri hakkında detaylar" />
  <LinkCard title="Hızlı Başlangıç" href="/getting-started/" description="5 dakikada ilk isteği gönder" />
  <LinkCard title="Fiyatlandırma" href="/pricing/" description="Ücretsizden Enterprise'a kadar" />
</CardGrid>
