> ## 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.

# Organization

> Organizasyon modeli, ayarlar, üyelik ve erişim

## Genel Bakış

Organization; veri, kullanıcı ve ayarların en üst düzey kiracısıdır. Her organizasyon, hiyerarşik bir Site ağacına, üyelik (rol) kayıtlarına ve yapılandırmaya sahiptir.

## Oluşturma & Varsayılan Yapı

* Organizasyon oluşturulduğunda otomatik olarak:
  * kök Site (`site-root-*`, adı `root`),
  * varsayılan "HQ" alt sitesi ve
  * oluşturan kullanıcı için `OWNER` rolünde, kök siteye atanmış bir OrganizationUser üyeliği
    oluşturulur.
* Oluşturan kullanıcının `currentOrganizationId` alanı yeni organizasyonu gösterecek şekilde güncellenir.

## Ayarlar

Organizasyon ayarları; iş akışlarını, AI özelliklerini ve UI seçeneklerini etkiler:

* `defaultFormWorkflow`: `{ type: "DIRECT_APPROVAL" | "REQUIRE_APPROVAL" }` (gönderim durum davranışını belirler)
* `defaultDashboardStatuses`: panolarda varsayılan durumlar
* `requireFormAssignment`: formlara atama gerektiren roller
* AI anahtarları (OpenAI/Anthropic): UI/hesaplama üretimi için şifreli saklanır

Yönetici ayarları (admin settings), markalama/terminoloji (ör. site etiketlerinin özelleştirilmesi) içerir.

## Üyelik & Roller (RBAC)

`OrganizationUser` üyeliği, bir `User`'ı organizasyona rol ve durum ile bağlar:

* Roller: `VIEWER`, `COLLECTOR`, `APPROVER`, `MANAGER`, `OWNER` (hiyerarşik)
* Durum: `INVITED` → `ACTIVE` → `INACTIVE` (e‑posta tabanlı davet)

## Site Erişimi (ABAC)

Site erişimi `OrganizationUserSite` atamaları ile verilir. Etkin erişim = atanan site(ler) + tüm alt site(ler). Kök site atanırsa tüm organizasyona erişim verilir.

## Temel İşlemler

* Mevcut organizasyon: `organizations.get`
* Organizasyon oluşturma: `organizations.create`
* Organizasyon değiştirme: `organizations.switch`
* Üyelikleri listeleme: `organizations.list`
* Kullanıcı listeleme (çağıranın site erişimiyle filtrelenir): `organizations.listUsers`
* Kullanıcı daveti: `organizations.inviteUser({ email, role, assignedSiteIds })`
* Rol güncelleme: `organizations.updateUserRole({ userId, role, assignedSiteIds? })`
* Site atamaları güncelleme: `organizations.updateUserSites({ userId, assignedSiteIds })`
* Toplu rol/site işlemleri: `organizations.bulkUpdateUserRoles`, `organizations.bulkUpdateUserSites`
* Ayar güncelleme: `organizations.update`

Tüm prosedürler RBAC + ABAC (rol + site erişimi) uygular ve RLS ile korunur.

## En İyi Uygulamalar

* Tam erişim için owner/manager kullanıcıları kök siteye atayın; diğerlerini bölge/site dallarına atayın.
* `defaultFormWorkflow` ve `requireFormAssignment` ayarlarını erken belirleyin.
* Site adlandırmasını ve etiketlerini net tutun; hiyerarşiyi mümkün olduğunca sığ tasarlayın.
* Çok sayıda kullanıcı güncellenecekse toplu işlemleri tercih edin.

## Dikkat Edilecekler

* Site ataması olmayan kullanıcıların etkin site erişimi yoktur (yönetim listelerinde görünebilirler).
* Kök site silinemez; site silme işlemi soft‑delete'tir ve alt site'lere kaskad uygulanabilir.
* Site koordinatları yanıtlarda string olarak döner; hesaplamalarda sayıya dönüştürün.

## Bkz.

* Site (hiyerarşi, şema, içe aktarma)
* Organization User (üyelik, roller)
* Organization User Site (site atamaları ve etkin erişim)
