> ## Documentation Index
> Fetch the complete documentation index at: https://docs.azalt.co/llms.txt
> Use this file to discover all available pages before exploring further.

# User

> Azalt'ta küresel kimlik, profil alanları ve organizasyonlarla ilişki.

### User

User, Azalt içindeki küresel (platform genelindeki) kullanıcıdır. Bir kullanıcı birden fazla organizasyona üye olabilir ancak aynı anda yalnızca bir geçerli organizasyon bağlamında çalışır.

#### Kısaca

* Küresel kimlik: organizasyona bağlı değildir
* Tek aktif bağlam: `currentOrganizationId` çalışma organizasyonunu belirler
* Platform rolü: `systemRole` = `"ADMIN" | "USER"`
* Organizasyon rolleri üyelikten gelir: bkz. Organization User
* Profil: `name`, `phone`, `locale`, opsiyonel `image` (Media)

#### Veri Yapısı

```typescript theme={null}
// apps/azalt/src/server/db/types/auth.ts (özet)
interface User {
  id: string;
  email: string;           // Auth adapter'dan
  name?: string | null;    // Auth adapter'dan
  image?: string | null;   // mevcutsa imzalı URL (Media)
  phone: string | null;
  locale: string | null;   // "en" | "tr"; yanıtlarda varsayılan "en"
  systemRole: "ADMIN" | "USER"; // platform düzeyi rol
  currentOrganizationId: string | null; // aktif organizasyon
}
```

#### Geçerli Organizasyon Seçimi

* Ayarlı değilse, en erken `ACTIVE` üyelik otomatik olarak atanır.
* Kullanıcı, `organization.switch` ile açıkça değiştirebilir.
* Mevcut organizasyon silinirse veya üyelik kaldırılırsa alan temizlenir; varsa bir sonraki `ACTIVE` üyelik seçilir.
* Kullanıcının organizasyonu yoksa ilgili sorgular istemci hatası döndürür.

#### Profil ve Medya

* Güncellenebilir alanlar: `name`, `phone`, `locale`.
* E‑posta kimlik doğrulama tarafından yönetilir; profilden değiştirilemez.
* Profil resimleri `Media` tablosunda (`fieldName = "profilePicture"`) tutulur ve süreli imzalı URL'lerle sunulur.

```typescript theme={null}
// tRPC (apps/azalt/src/server/api/routers/user)
user.me(): { email, name, phone, locale }
user.updateProfile({ name?, phone?, locale?: "en" | "tr" })
```

#### Sistem ve Organizasyon Rolleri

* `systemRole` platform düzeyi yönetim özelliklerini kontrol eder.
* Organizasyon rolleri (Owner/Manager/Approver/Collector/Viewer) organizasyon bazında üyelikle atanır.

#### Sık Yapılan İşlemler

* Profili görüntüleme/güncelleme (name/phone/locale)
* Geçerli organizasyonu değiştirme (üye olduğu organizasyonlar arasından)
* Davetleri kabul etme (kabul sonrası `ACTIVE` olur)

#### İpuçları ve Köşe Durumlar

* Locale ayarlı değilse yanıtlarda `"en"` döner.
* Kullanıcı bir organizasyondan kaldırıldığında `currentOrganizationId` anında temizlenir.
* Organizasyon kullanıcı listesi, varsa profil resminin imzalı `image` URL'sini içerir.

#### İlgili Kavramlar

* Organization User — üyelik, rol ve durum yönetimi
* Organization User Site — üyelik için site düzeyi erişim
