# Aplicații de dating

Astrologicul compatibilității este un factor de retenție în aplicațiile de dating precum Bumble, Hinge, Tinder, Tantan și în aplicații astro-first precum NUiT, Struck. API-ul AstroWay oferă un scor de sinastrie gata de utilizat, de la 0 la 100, cu un singur apel — fără a avea nevoie de propriul tău motor de efemeride și fără licența Solar Fire ($495).

## Cum funcționează

1. Utilizatorul introduce data, ora și locul nașterii la înregistrare
2. La potrivire — backend-ul tău apelează `/v1/synastry` cu datele ambelor persoane
3. API-ul returnează `compatibility.score` (0–100) și `label` (harmonious/balanced/mixed/challenging)
4. Scorul este folosit ca unul dintre factorii de ranking

```
Algoritmul de matching
  ├── Proximitatea locației         (40%)
  ├── Interese comune              (30%)
  ├── Compatibilitatea astrologică  (20%)  ← AstroWay API
  └── Alte semnale                  (10%)
```

## Endpoint-uri cheie

| Endpoint | Credite | Ce returnează |
|---|---|---|
| `/v1/synastry` | 50 | Aspecte încrucișate + scor 0–100 |
| `/v1/human-design/compatibility` | 100 | Compatibilitatea HD (tip + strategie) |
| `/v1/horoscope/compatibility` | 50 | Analiză textuală a compatibilității |

## Model de integrare

```ts
// La potrivire — apelează sinastria
async function getCompatibility(userA: UserProfile, userB: UserProfile) {
  const result = await astrowayClient.synastry({
    chart1: {
      date: userA.birthDate,
      time: userA.birthTime || '12:00:00', // default la amiază dacă este necunoscut
      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,  // sumă ponderată
    tension: result.compatibility.tension,
  };
}
```

<Aside type="tip">
Rezultatul sinastriei este imuabil (depinde doar de datele de naștere). Cochează perechea `(userA_id, userB_id) → scor` în baza ta de date. Un singur apel API — și nu mai trebuie să recalculezi.
</Aside>

## Estimarea bugetului

### Scenariu: 1.000 de noi potriviri pe zi

| Metrică | Valoare |
|---|---|
| Potriviri/zi | 1.000 |
| Credite/potrivire | 50 (sinastrie) |
| Credite/zi | 50.000 |
| Credite/lună | ~1.500.000 |
| Tarif | **Business ($199/lună, 3.500.000 credite)** |

### Scenariu: 50 de potriviri pe zi (startup)

| Metrică | Valoare |
|---|---|
| Potriviri/zi | 50 |
| Credite/zi | 2.500 |
| Credite/lună | ~75.000 |
| Tarif | **Starter ($19/lună, 200.000 credite)** |

### Optimizare

- **Caching** — păstrează scorul în baza de date, nu recalcula
- **Procesare leneșă** — calculează sinastria doar când utilizatorul deschide potrivirea, nu pentru toate perechile potențiale
- **Calcul în lot la înregistrare** — calculează compatibilitatea cu primele 20 de potriviri potențiale imediat

## Fără ora nașterii

Dacă utilizatorul nu cunoaște ora — transmite `"time": "12:00:00"` (amiază). Casele vor fi mai puțin precise, dar pozițiile planetare și aspectele încrucișate vor fi corecte. Scorul de compatibilitate rămâne informativ.

Pentru compatibilitatea HD, ora este mai importantă — ia în considerare `hd/sensitivity` pentru a evalua impactul orei inexacte.

<CardGrid>
  <LinkCard title="API Sinastrie →" href="/products/synastry-api/" description="Detalii despre endpoint-urile de compatibilitate" />
  <LinkCard title="Start rapid" href="/getting-started/" description="Primul apel în 5 minute" />
  <LinkCard title="Tarife" href="/pricing/" description="De la gratuit până la Enterprise" />
</CardGrid>
