Ana içeriğe atla
ImportResult, belirli bir site ve zaman dönemi için bir içe aktarma yürütmesinin sonucunu saklar. Her sonuç, işlenmiş veri anlık görüntüsünü ve form gönderimlerini oluşturan eşlemeleri içerir.

Temel Amaç

  • Sonuç Takibi: Site/dönem başına neyin içe aktarıldığını kaydeder
  • Veri Anlık Görüntüsü: İşlenmiş çıkış değerlerini korur
  • Eşleme Kaydı: Hangi form elemanlarının değer aldığını takip eder
  • Denetlenebilirlik: Bir içe aktarmanın gerçekte neyi değiştirdiğini incelemeyi sağlar

Varlık Yapısı

ImportResult {
  id: "impres-...",
  importId: "imp-...",           // Üst içe aktarma yürütmesi
  formSiteId: "fs-...",          // Hedef form-site kombinasyonu
  year: 2024,                    // Hedef yıl
  periodUnit: "MONTHLY",         // YEARLY, MONTHLY, QUARTERLY
  period: 1,                     // Dönem numarası (aylık için 1-12, çeyreklik için 1-4)
  processedData: {...},          // İşlemciden çıkış
  mapping: [...],                // Alan-eleman eşlemeleri
  rowsProcessed: 12              // Kullanılan giriş satırı sayısı
}

İşlenmiş Veri

processedData alanı, işlemci kodundan çıkışı saklar: Basit çıkış:
{
  "toplam_enerji": 15420.5,
  "enerji_kaynagi": "Şebeke Elektriği"
}
Dönemsel çıkış (sonuç başına saklanır):
{
  "aylik_tuketim": 1250
}
Bu alan tam çıkış türlerini korur:
  • Sayılar sayı olarak kalır
  • Metinler metin olarak kalır
  • Boolean’lar boolean olarak kalır

Eşleme Yapısı

mapping alanı, çıkış değerlerinin nasıl eklendiğini kaydeder:
[
  {
    "outputKey": "toplam_enerji",
    "formElementId": "fe-abc123",
    "valueInserted": 15420.5
  },
  {
    "outputKey": "enerji_kaynagi",
    "formElementId": "fe-def456",
    "valueInserted": "Şebeke Elektriği"
  }
]
Her eşleme girişi şunları gösterir:
  • outputKey: İşlemci çıkış alanı
  • formElementId: Değeri alan form elemanı
  • valueInserted: Saklanan gerçek değer

Dönem İşleme

ImportResult farklı dönem ayrıntılarını destekler: Yıllık (periodUnit: “YEARLY”, period: 1):
  • Yıl başına tek sonuç
  • Yıllık toplamlar veya ortalamalar için kullanılır
Aylık (periodUnit: “MONTHLY”, period: 1-12):
  • Her ay için ayrı sonuç
  • Period 1 = Ocak, Period 12 = Aralık
Çeyreklik (periodUnit: “QUARTERLY”, period: 1-4):
  • Her çeyrek için ayrı sonuç
  • Period 1 = Q1 (Oca-Mar), Period 4 = Q4 (Eki-Ara)

Çoklu Site Sonuçları

Gruplu içe aktarmalar için, her site kendi ImportResult’ını alır:
Import (imp-123) üretir:
├── Site A için ImportResult, 2024, YEARLY
├── Site B için ImportResult, 2024, YEARLY
└── Site C için ImportResult, 2024, YEARLY
formSiteId her sonucu belirli FormSite kombinasyonuna bağlar.

İşlenen Satırlar

rowsProcessed alanı, bu sonuca kaç kaynak satırın katkıda bulunduğunu gösterir:
  • Grupsuz içe aktarmalar için: toplam satır sayısına eşittir
  • Gruplu içe aktarmalar için: bu sitenin grup anahtarıyla eşleşen satırlara eşittir

Erişim Kontrolü

ImportResult erişimi üst Import’tan devralınır:
  • Kullanıcılar yalnızca kuruluşlarındaki içe aktarmalardan sonuçları görebilir
  • RLS politikaları üst Import’un organizationId’sini kontrol eder

Sonuçları Sorgulama

Belirli bir içe aktarma için sonuçlar:
SELECT * FROM "ImportResult"
WHERE "importId" = 'imp-123'
ORDER BY "formSiteId", year, period;
Belirli bir site için sonuçlar:
SELECT ir.*, i."createdAt" as "importedAt"
FROM "ImportResult" ir
JOIN "Import" i ON i.id = ir."importId"
WHERE ir."formSiteId" = 'fs-456'
ORDER BY i."createdAt" DESC;

Veri Bütünlüğü

ImportResult kayıtları şunları sağlar: İzlenebilirlik: Hangi değerlerin içe aktarmalardan, hangilerinin manuel girişten geldiğini bilme Tekrar Üretilebilirlik: processedData anlık görüntüsü işlemcinin ne ürettiğini gösterir Hata Ayıklama: Eşleme kayıtları yanlış değerleri teşhis etmeye yardımcı olur

İlgili Varlıklar