Ana içeriğe atla

Genel Bakış

Site’lar, bir organizasyon içindeki hiyerarşik lokasyonlardır. Kök site (site-root-*) altında bir ağaç yapısı oluştururlar. Tüm site işlemleri org ve site erişim kapsamı ile sınırlıdır.

Şema (çıktı)

API’lerin döndürdüğü temel alanlar:
{
  id: string,
  name: string,
  createdAt: Date,
  updatedAt: Date,
  parentSiteId: string | null,
  country: string | null,
  city: string | null,
  address: string | null,
  unLocode: string | null,
  longitude: string | null,
  latitude: string | null,
  numberOfEmployees: number | null,
  floorAreaInM2: number | null,
  tags: string[] | null,
  metadata: Record<string, string> | null,
}
Not: longitude ve latitude alanları yanıtlarda string’tir.

Hiyerarşi & Erişim

  • Kök site organizasyon başına oluşturulur; silinemez.
  • Kullanıcının etkin erişimi = atanan site(ler) + tüm alt site(ler) (OrganizationUserSite).
  • Listeleme (sites.list), yalnızca erişebildiğiniz site’ları döndürür (isteğe bağlı olarak kök, “Organization” olarak gösterilir).

İşlemler

  • Site listeleme: sites.list({ includeRoot?: boolean })
  • Site oluşturma: sites.create({ name, organizationId, parentSiteId?, ... })
  • Site güncelleme: sites.update({ id, name, ... })
  • Site silme: sites.delete({ id, cascade?: boolean }) (soft‑delete; cascade alt site’ler için)
  • CSV içe aktarma: sites.import({ organizationId, csvContent }) (doğrulamalı toplu oluşturma)
Tüm işlemler RBAC + ABAC (rol + site erişimi) kontrolleri uygular ve RLS kullanır.

CSV İçe Aktarım

Desteklenen sütunlar (başlık örnekleri):
  • id?, name (zorunlu)
  • parentSiteId? (DB’de veya aynı CSV içindeyse)
  • country?, city?, address?, unLocode?
  • longitude?, latitude?
  • numberOfEmployees?, floorAreaInM2?
  • tags? (virgül veya | ile ayrılmış)
  • metadata_* (örn. metadata_sapId{ sapId: "..." })
Davranış:
  • Satırları doğrular ve topolojik sıralar (ebeveynler çocuklardan önce); döngüleri saptar.
  • Bağımlılık seviyelerine göre toplu ekleme yapar.
  • Başarı/başarısız sayıları ve ayrıntılı hataları (satır numarası ile) döndürür.

En İyi Uygulamalar

  • Hiyerarşiyi mümkün olduğunca sığ tutun; manager’ları bölge düğümlerine, collector’ları yaprak düğümlere atayın.
  • Yoğunluk hesaplamaları için numberOfEmployees ve floorAreaInM2 alanlarını doldurun.
  • Dış sistem kimlikleri ve filtreleme için tags ve metadata_* kullanın.
  • cascade silmeyi yalnız emin olduğunuz durumlarda tercih edin.

Dikkat Edilecekler

  • Kök site silinemez.
  • Koordinatlar string’tir; matematik için sayıya dönüştürün.
  • Site silme işlemi soft‑delete’tir (deletedAt).

Bkz.

  • Organization (ayarlar, üyelik)
  • Organization User (roller)
  • Organization User Site (site atamaları ve etkin erişim)