1. Amaç (Yönetmelik md. 6/1-a)
Bu politika, Şirketin veri sorumlusu olarak işlediği ve PT'ler adına veri işleyen olarak işlediği kişisel verilerin hangi süre saklanacağını, bu sürelerin dayanağını, sürenin sonunda hangi yöntemle silineceğini, yok edileceğini veya anonim hale getirileceğini ve bu işlemlerden kimin sorumlu olduğunu belirler.
Uygulama 2026-09-28 tarihli kararla hastalık, sakatlık, ameliyat, ilaç ve hekim notu gibi sağlık kayıtlarını tutmaz. Önceki sürümlerden kalan sağlık verilerinin imhası bölüm 9A'da anlatılır. 2026-10-10 tarihli kararla üyelerin açık rızasıyla tutulan Kalori takibi verileri eklenmiştir (tablo satır 24 ile 30).
2. Kayıt ortamları (md. 6/1-b)
| Ortam | İçerik | Konum |
|---|---|---|
Google Cloud Firestore (adbros-ptapp) | Uygulamanın tüm yapısal verileri; silme kayıtları (_deletionLog) | europe-west3 (Frankfurt) |
| Firebase Cloud Storage | Profil fotoğrafları (avatars/{uid}.jpg) | Google Cloud (Firebase projesinin varsayılan depolama konumu) |
Firebase Hosting (mypt-exercise-art) | Herkese açık egzersiz çizimleri (kişisel veri değil); indirilirken yalnızca cihazın IP adresi ve dosya adı görülür, hesapla eşleştirilmez | Google'ın küresel dağıtım ağı |
| Firebase Authentication | Telefon numarası, kullanıcı kimliği | ABD |
| Cloud Functions ve Cloud Logging kayıtları | Sunucu işlem ve hata kayıtları (hesap silmede ham kullanıcı kimliği yerine özeti yazılır; Kalori analizinde yalnızca kullanıcı kimliğinin özeti, sonuç ve süre yazılır, fotoğraf ve metin yazılmaz) | europe-west3 (Frankfurt); en fazla 1 yıl |
| Google Cloud Vertex AI (Gemini), AB çok bölgeli uç nokta | Kalori analizi için gönderilen öğün fotoğrafı veya açıklaması; yalnızca analiz süresince işlenir, Şirket tarafından saklanmaz | Avrupa Birliği |
| Firestore yedekleri ve zaman içinde kurtarma (PITR) | Veritabanı kopyaları | europe-west3 |
| RevenueCat | PT'lerin ve MyPT+ satın alan üyelerin abonelik kayıtları | ABD |
| Expo push servisi | Bildirim anahtarları, kısa süreli bildirim kayıtları | ABD |
| Kullanıcı cihazı | Oturum rolü, bildirim tercihleri, okunmuş bildirim listesi, Firestore çevrim dışı önbelleği; Kalori analizi için küçültülen fotoğrafın gönderim sırasında geçici önbellekteki kopyası; kaydedilmiş fotoğraflı öğünlerin küçük kopyaları (Uygulamanın kendi klasöründe, Şirkete gönderilmez); formül yardımcısının girdileri yalnızca hesaplama sırasında; ana ekran ve kilit ekranı widget içeriği ile widget cevap kuyruğu (Uygulamanın paylaşılan klasöründe); tanıtım ve İlk adımlar işaretleri, ses ve görünüm tercihi, kutlama ve rozet kayıtları; indirilmiş egzersiz çizimleri | Kullanıcının cihazı |
| Şirket e-posta kutusu | KVKK başvuruları, destek yazışmaları | Şirketin e-posta sağlayıcısı |
| Basılı ortam | Islak imzalı başvurular, imha tutanakları | kilitli dolap |
3. Tanımlar (md. 6/1-c)
- Silme: Kişisel verilerin ilgili kullanıcılar için hiçbir şekilde erişilemez ve tekrar kullanılamaz hale getirilmesi.
- Yok etme: Kişisel verilerin hiç kimse tarafından hiçbir şekilde erişilemez, geri getirilemez ve tekrar kullanılamaz hale getirilmesi.
- Anonim hale getirme: Kişisel verilerin başka verilerle eşleştirilse dahi kimliği belirli veya belirlenebilir bir gerçek kişiyle ilişkilendirilemeyecek hale getirilmesi.
- Periyodik imha: Saklama şartlarının tamamı ortadan kalktığında bu politikada belirtilen aralıklarla resen yapılan imha.
- PT kaydı: PT'nin veri sorumlusu olduğu, Şirketin PT adına işlediği üye kayıtları.
- Silme kaydı:
_deletionLogkoleksiyonundaki, silinen verinin içeriğini barındırmayan kayıt: zaman, tür (accounthesap silme,calorieKalori takibi onayının geri alınması,measurementskilo ve ölçü onayının reddi veya geri alınması,cleanuptoplu temizlik), rol, kategori bazında sayılar, hesap silmede ve onayın geri alınmasında kullanıcı kimliğinin SHA-256 özeti; Kalori takibi onayı verilmişse onayın ispatı için onay metninin sürümü ile onay ve beyan tarihleri. Bu özet kişiyi doğrudan göstermez; ancak aynı kimlik başka bir sistemde durduğu sürece eşleştirilebilir, bu nedenle takma adlı veri olarak korunur.
4. Saklama ve imhayı gerektiren sebepler (md. 6/1-ç)
Saklama sebepleri: hizmet sözleşmesinin ifası (KVKK md. 5/2-c); kilo ve çevre ölçüleri ile Kalori takibi verileri için ilgili kişinin açık rızası (md. 6/3-a); kötüye kullanımın önlenmesi (md. 5/2-f); Şirketin hukuki yükümlülükleri (Türk Ticaret Kanunu md. 82/5 uyarınca ticari defter ve dayanak belgelerin on yıl saklanması; vergi mevzuatı; Yönetmelik md. 7/3 uyarınca silme kayıtlarının en az üç yıl saklanması; 5651 sayılı Kanun md. 5/3 kapsamında trafik bilgisi); hakların tesisi ve korunması (md. 5/2-e; 6098 sayılı TBK md. 146 uyarınca on yıllık genel zamanaşımı); güvenlik (md. 5/2-f).
İmha sebepleri: sözleşmenin sona ermesi (hesap silme), PT'nin talimatı, ilgili kişinin silme talebi (KVKK md. 11/1-e, md. 7), açık rızanın geri alınması (Kalori takibi), saklama süresinin dolması, amacın ortadan kalkması (örneğin Uygulamanın sağlık kaydı tutmama kararı, bölüm 9A).
5. Güvenli saklama için teknik ve idari tedbirler (md. 6/1-d)
- Aktarımda TLS, depolamada sağlayıcı düzeyinde şifreleme.
- Sunucu tarafında uygulanan erişim kuralları (
firebase/firestore.rules,firebase/storage.rules); en az yetki ilkesi; bakiye ve sonuçları yalnızca sunucu yazar; eski sağlık verisi yolları ve silme kayıtları hiçbir istemciye açık değildir; kilo ve ölçülere yalnızca o kaydın PT'si ve üyenin kendisi erişebilir. - Google Cloud yönetici erişimi yalnızca yetkili kişilerde, iki adımlı doğrulama zorunlu; yetkiler 3 ayda bir gözden geçirilir ve görev değişikliğinde derhal kaldırılır.
- Sunucu günlüklerine sağlık verisi, kalori kayıtları, öğün fotoğrafı veya metni, telefon numarası, ham kullanıcı kimliği (silme işlemlerinde ve Kalori analizinde) ve bildirim içeriği yazılmaz.
- Kalori kayıtlarına yalnızca üye ve üyenin paylaşmayı seçtiği, kendisine bağlı PT erişebilir; PT yalnızca okuyabilir. Analiz hakkı sayaçlarını ve abonelik durumunu yalnızca sunucu yazar.
- Öğün fotoğrafı telefonda küçültülür, sunucuda yalnızca istek süresince bellekte tutulur ve Google Cloud Vertex AI'ın AB çok bölgeli uç noktasına adı, telefonu veya kullanıcı kimliği eklenmeden gönderilir. Kaydedilen fotoğraflı bir öğünün küçük bir kopyası yalnızca üyenin telefonunda tutulur; Şirkete gönderilmez ve PT göremez.
- Bildirim metinlerinde sağlık bilgisi ve kalori kaydı bulunmaz; PT'ye giden bazı bildirimlerde (örneğin paket bitişi) yalnızca üyenin adı yer alır.
- Widget'tan verilen ders cevapları telefona özel bir anahtarla kabul edilir; sunucuda yalnızca anahtarın tek yönlü özeti tutulur, anahtar çıkışta iptal edilir.
- Kilo ve ölçüler ile Kalori takibi verileri ihtiyatlı yorumla özel nitelikli veri sayıldığından, Kişisel Verileri Koruma Kurulunun belirlediği yeterli önlemlere ilişkin ayrı prosedür ve personel eğitimi (yılda en az bir kez).
- Veri ihlali müdahale prosedürü (Kurula 72 saat içinde bildirim).
- Basılı başvurular kilitli dolapta, erişim kayıt altında.
6. İmha için teknik ve idari tedbirler (md. 6/1-e)
| Yöntem | Nerede | Nasıl |
|---|---|---|
| Silme | Firestore (hesap silme) | Sunucu fonksiyonu deleteAccount (functions/src/callable/deleteAccount.ts): PT için trainers/{uid} ağacının özyinelemeli silinmesi (recursiveDelete), davet kodları, users/{uid}; üye için her PT'deki kendi kayıtları, tüm ölçümleri ve hesap alanları, users/{uid}. Yeniden denenebilir; kimlik doğrulama kaydı en son silinir |
| Silme | Firestore (Kalori onayının geri alınması) | Sunucu fonksiyonu deleteCalorieData: önce onayın ispatını (onay metni sürümü ve tarihleri) okur; sonra users/{uid}/calorieDays ve users/{uid}/calorie/settings silinir ve _deletionLog'a ispatla birlikte bir kayıt (tür calorie) yazılır. users/{uid}/calorieUsage sayaçları silinmez. Hesap silmede deleteAccount sayaçları ve users/{uid}/entitlements kaydını da siler, ispatı silme kaydına aynı şekilde yazar |
| Silme | Firestore (toplu temizlik) | Tek seferlik betik functions/scripts/cleanup-sensitive-data.js (bölüm 9A) |
| Silme | Cloud Storage | Nesne silme (avatars/{uid}.jpg), hesap silmede |
| Silme | Firebase Authentication | Yönetici API ile kullanıcı silme, hesap silmede en son adım |
| Silme | Cihaz | Çıkışta ve hesap silmede yerel oturum verileri ve bildirim anahtarı; Firestore önbelleğinin temizlenmesi; uygulama silinince cihazdaki tüm veriler |
| Yok etme | Yedekler | Yedeklerin saklama süresi sonunda sağlayıcı tarafından geri getirilemez biçimde imhası (rotasyon) |
| Yok etme | Basılı belgeler | Kâğıt imha makinesi (çapraz kesim) |
| Anonim hale getirme | PT kayıtları | Silinen bir üyenin PT'nin mali özetinde kalması gereken kayıtlarında ad, telefon, e-posta, not, fotoğraf ve ölçümlerin kaldırılması, üye kimliğinin rastgele bir değerle değiştirilmesi (PT'nin talimatıyla) |
Her imha işlemi için silinen verinin içeriğini barındırmayan bir kayıt tutulur (tarih, tür, kategori, tetikleyen, etkilenen kayıt sayısı; hesap silmede kullanıcı kimliğinin özeti) ve en az üç yıl saklanır (Yönetmelik md. 7/3); Kalori takibi onayının ispatını taşıyan kayıtlar 10 yıl saklanır. Hesap silme, Kalori takibi onayının geri alınması ve toplu temizlik bu kaydı _deletionLog koleksiyonuna otomatik yazar.
7. Sorumlular (md. 6/1-f)
| Unvan | Birim | Görev |
|---|---|---|
| Veri Koruma Sorumlusu | Yönetim | Politikanın yürütülmesi, başvuruların sonuçlandırılması, Kurul ile iletişim, imha tutanaklarının onayı |
| Teknik Sorumlu | Yazılım | Silme fonksiyonlarının çalışması, periyodik imhanın elle yapılması, temizlik betiğinin çalıştırılması, yedek rotasyonu, erişim yetkileri |
| Yönetim | Yönetim | Politikanın onayı, kaynak ayrılması, yıllık gözden geçirme |
8. Saklama ve imha süreleri tablosu (md. 6/1-g)
| # | Veri kategorisi | Rol | Saklama süresi | Süre sonunda | Dayanak / gerekçe |
|---|---|---|---|---|---|
| 1 | Üye ve PT hesabı (telefon, uid, rol, bağlantılar) | Veri sorumlusu | Hesap açık olduğu sürece | Uygulama içinden silmede hemen; diğer taleplerde en geç 30 gün içinde silme | md. 5/2-c; Yönetmelik md. 12/1-a (30 gün) |
| 2 | Profil (ad, fotoğraf, doğum tarihi, PT profil bilgileri) | Veri sorumlusu | Hesap süresince; kullanıcı değiştirince eski değer silinir | Hesapla birlikte hemen | md. 5/2-c |
| 3 | Eski sağlık kayıtları (önceki sürümler): memberHealth/**, members/{mid}/health/** | Veri sorumlusu ve veri işleyen | Saklanmaz; amaç 2026-09-28'de ortadan kalktı | Yeni sürüm yayına alındıktan sonra bölüm 9A'daki temizlikle tek seferde silme; yedeklerden bölüm 9B'deki sürede kalkar | md. 4/2-d, md. 7/1 |
| 4 | Eski yağ oranı ve kas kütlesi ölçümleri, beslenme planlarındaki kalori ve makro hedefleri | Veri işleyen | Saklanmaz | Bölüm 9A'daki temizlikle silme | md. 4/2-ç, d |
| 5 | Kilo ve çevre ölçüleri (bel, kalça, göğüs, kol, bacak) ve diğer ölçümler | Veri işleyen (PT ile üyenin ortak kaydı) | PT veya üye silene kadar; üyenin onayı sürdükçe | Üye onaylamaz veya onayını geri çekerse o PT'deki ölçümleri ve ölçü tanımları (setMeasurementConsent), üye hesabı silinince tüm PT'lerdeki ölçümleri hemen silinir; PT hesabı silinince hemen | md. 6/3-a |
| 6 | Kilo ve ölçü onayı (her PT'deki üye kaydında measurementConsent: cevap, onay metni sürümü, zaman); önceki sürümlerden kalan rıza kayıtları | Veri sorumlusu | Onay sürdükçe | Geri çekilince veya hesap silinince üye kaydından hemen silinir; verilmiş onayın sürümü ve tarihi, kimlik özetiyle silme kaydında (satır 20) 10 yıl saklanır | md. 5/2-ç, 5/2-e; TBK md. 146 |
| 7 | Eski sağlık paylaşım rızaları (consents/healthShare_*, users/{uid}.healthShareConsentAt) | Veri sorumlusu | Saklanmaz | Bölüm 9A temizliğiyle silinir; hesap silmede hemen | md. 7/1; ispat gerekirse md. 5/2-e |
| 8 | PT sözleşme onay kayıtları | Veri sorumlusu | İlişki süresince | İlişki bitiminden sonra 10 yıl | md. 5/2-e; TBK md. 146 |
| 9 | PT'nin abonelik durumu (billing/state) | Veri sorumlusu | Hesap süresince | Hesapla birlikte hemen | md. 5/2-c |
| 10 | Mağaza ve RevenueCat abonelik kayıtları | Veri sorumlusu | Hesap süresince | RevenueCat müşteri kaydı Uygulamadan silinmez; Şirketin muhasebe kayıtlarında gereken asgari işlem bilgisi 10 yıl | TTK md. 82/5; vergi mevzuatı |
| 11 | Bildirim anahtarları | Veri sorumlusu | Kullanıcı çıkış yapana, bildirimleri kapatana, hesabını silene veya anahtar geçersiz olana kadar | Anında silme; 270 günden eski güncellenmemiş anahtarlar periyodik imhada silinir | md. 5/2-c |
| 12 | Bildirim tercihleri | Veri sorumlusu | Hesap süresince | Hesapla birlikte hemen | md. 5/2-c |
| 13 | Sunucu ve güvenlik kayıtları | Veri sorumlusu | 1 yıl | Otomatik silme | md. 5/2-f; 5651 md. 5/3 uygulanıyorsa yönetmelikteki süre |
| 14 | Davet kodları | Veri sorumlusu | Son kullanma tarihi (30 gün); kullanılmışsa kullanımından itibaren 30 gün | Silme; PT hesabı silinince hemen; üye silinince kullandığı kod serbest bırakılır | Amacın sona ermesi |
| 15 | Tekrar bildirim önleme kayıtları (pushOnce, notices; üyelerin seri bildirimleri için users/{uid}/pushOnce: hafta ve seviye anahtarı) | Veri sorumlusu | 90 gün | Süresi dolanlar periyodik imhada silinir; üye hesabı silinince users/{uid}/pushOnce hemen | Teknik gereklilik |
| 16 | PT kayıtları: üye kartı, dersler, ders talepleri, paketler, ders defteri, programlar, antrenman ve beslenme günlükleri, beslenme planları, notlar | Veri işleyen | PT'nin hesabı açık olduğu sürece, PT'nin talimatına göre | PT sildiğinde veya anonimleştirdiğinde anında; PT hesabı silinince hemen. Pasif üyeler için 24 ay hareketsizlikten sonra PT'ye silme hatırlatması şimdilik elle yapılır | Veri İşleme Sözleşmesi; PT'nin saklama yükümlülükleri PT'ye aittir |
| 17 | Üyenin kendi hesabını silmesi sonrası | Veri işleyen | Üyenin girdikleri (antrenman işaretleri, beslenme günlükleri, ders talepleri, rıza kayıtları) ve tüm ölçümleri hemen silinir; PT'nin iş kayıtları (dersler, paketler, ders defteri, notlar) PT'nin talimatına göre kalır | Üye talebini PT'ye iletir; PT'ye 90 gün sonra hatırlatma şimdilik elle yapılır | Veri İşleme Sözleşmesi md. 8 |
| 18 | KVKK başvuruları ve cevapları | Veri sorumlusu | Sonuçlandırmadan itibaren 3 yıl | Silme / basılı ise yok etme | md. 5/2-ç, 5/2-e; Kurul şikâyet ve inceleme süreçleri |
| 19 | Destek yazışmaları | Veri sorumlusu | Talep kapandıktan sonra 2 yıl | Silme | md. 5/2-f |
| 20 | Silme kayıtları (_deletionLog) ve imha tutanakları | Veri sorumlusu | En az 3 yıl; Kalori takibi veya kilo ve ölçü onayının ispatını taşıyanlar 10 yıl | Süresi dolanlar periyodik imhada silinir | Yönetmelik md. 7/3; onay ispatı için md. 5/2-e, TBK md. 146 |
| 21 | Veri ihlali kayıtları | Veri sorumlusu | 5 yıl | Silme | md. 12; ispat |
| 22 | Yedekler | Her iki rol | Firestore PITR 7 gün; planlı yedekler 35 gün | Rotasyonla yok etme | Teknik gereklilik; silinen veri en geç bu süre sonunda yedeklerden de kalkar (bölüm 9B) |
| 23 | Cihazdaki yerel veriler | Veri sorumlusu | Oturum süresince | Oturum verileri ve widget içeriği çıkışta silinir; kaydedilmiş öğünlerin küçük resimleri ve egzersiz çizimleri çıkışta telefonda kalır (küçük resimler öğün silinince, onay geri çekilince veya hesap silinince; hepsi uygulama silinince silinir); tanıtım ve İlk adımlar işaretleri, ses ve görünüm tercihi uygulama silinince silinir | md. 5/2-c |
| 24 | Kalori öğün kayıtları (users/{uid}/calorieDays): tarih ve saat, kaynak, başlık, yiyecek adları, gram, kalori ve makro değerleri | Veri sorumlusu | Üyenin Kalori takibi onayı sürdükçe; üye tek tek silebilir | Onay geri alınınca veya hesap silinince hemen silme; yedeklerden satır 22'deki sürede kalkar | md. 6/3-a; md. 7/1 |
| 25 | Kalori ayarları (users/{uid}/calorie/settings): hedef veya hedefsiz kayıt seçimi, PT'lerle paylaşım tercihleri, kurulum tarihi | Veri sorumlusu | Onay sürdükçe | Onay geri alınınca veya hesap silinince hemen | md. 6/3-a |
| 26 | Kalori onay kaydı (aynı belgede): onay metni sürümü, sağlıkla ilgili veri ve yapay zekâ onayı tarihleri, 18 yaş beyanı tarihi | Veri sorumlusu | Onay sürdükçe | Onay geri alınınca veya hesap silinince bu belgeden hemen silinir; onay metni sürümü ve tarihler, kimlik özetiyle silme kaydında (satır 20) 10 yıl saklanır | md. 5/2-ç, 5/2-e |
| 27 | Öğün fotoğrafı ve analiz için yazılan açıklama | Veri sorumlusu | Sunucuda saklanmaz: yalnızca analiz isteği süresince bellekte işlenir. Kaydedilen fotoğraflı öğünün küçük bir kopyası ise yalnızca üyenin telefonunda tutulur (Şirkete gönderilmez) | İstek bitince bellekten kalkar; kayıtlara yazılmaz. Telefondaki küçük kopya öğün silinince, onay geri çekilince veya hesap silinince telefondan silinir. Google tarafındaki sınırlı istisna (kötüye kullanım incelemesi) için Gizlilik Politikası bölüm 3A | md. 6/3-a; md. 4/2-ç (ölçülülük) |
| 28 | Formül yardımcısının girdileri (amaç, cinsiyet, doğum yılı, boy, kilo, aktivite) | Yok (Şirkete ulaşmaz) | Sunucuya gönderilmez, saklanmaz; yalnızca telefonda hesaplanır | Hesaplama bitince | md. 4/2-ç |
| 29 | Kalori analiz hakkı sayaçları (users/{uid}/calorieUsage, haftalık ve günlük) | Veri sorumlusu | Hesap süresince; sayaç ait olduğu hafta veya gün bitince işlevini yitirir | Hesap silinince hemen; onay geri alınınca silinmez (yeniden onayla ücretsiz hakkın sıfırlanmasını önlemek için); 90 günden eski sayaçlar periyodik imhada silinir | md. 5/2-c |
| 30 | MyPT+ hak kaydı (users/{uid}/entitlements/plus: aktif mi, bitiş, ürün, mağaza); PT'nin sponsor durumu (trainers/{tid}/billing/state.kaloriSponsor) | Veri sorumlusu | Hesap süresince | Hesapla birlikte hemen | md. 5/2-c |
| 31 | Arkadaşını getir kayıtları: arkadaş kodu (referralCodes), davet edilenler listesi (trainers/{tid}/referrals: ilk ad, katılma, deneme bitiş tarihi, kullanım), hatalı kod denemeleri (referralAttempts) | Veri sorumlusu | PT hesabı süresince; silinen bir arkadaş listede ad olmadan "Bir PT" olarak kalır | PT hesabı silinince hemen | md. 5/2-c, 5/2-f |
| 32 | Telefon özeti (referralPhones/{SHA-256}): bir numarayla tek kod kullanımı | Veri sorumlusu | Arkadaşını getir programı sürdükçe; hesap silinse de kalır | Program sona erince silinir | md. 5/2-f; takma adlı veri olarak korunur |
| 33 | İndirim (influencer) kodu kayıtları: influencer adı, kodu ve toplu istatistikleri (influencers); PT'nin girdiği kod (billing/state.influencerId) | Veri sorumlusu | İş birliği sürdükçe; PT'nin kaydı hesap süresince | PT hesabı silinince PT'nin kaydı hemen; toplu sayılar kişiyi göstermediği için kalır | md. 5/2-c, 5/2-f |
| 34 | Widget yetki kaydı (trainers/{tid}/widgetTokens/{sha256}): anahtarın tek yönlü özeti, telefonun model adı, oluşturma ve son kullanma zamanı, kullanım sayısı | Veri sorumlusu | Çıkış yapılana veya hesap silinene kadar; en fazla 10 telefon | Çıkışta iptal edilir (silinir); PT hesabı silinince hemen | md. 5/2-c, 5/2-f |
| 35 | Widget cevap işareti (trainers/{tid}/widgetDecisions/{id}): ders ve üye kimliği, cevap, zaman | Veri işleyen (PT'nin kaydı) | En fazla 30 gün | Süresi dolanlar periyodik imhada silinir; PT hesabı silinince hemen | md. 5/2-c, 5/2-f |
Kalori takibinin kullanımını anlamak için tutulan günlük toplam sayılar (stats/calorieFunnel) kullanıcı kimliği veya kişiye ait başka bir bilgi içermez; kişisel veri olmadığından bu tablonun kapsamı dışındadır.
9. Periyodik imha süresi (md. 6/1-ğ)
- Periyodik imha şimdilik teknik sorumlu tarafından en geç altı ayda bir elle yapılır: tablodaki süreleri dolan kayıtlar kontrol edilip silinir. Yönetmelik md. 11/2 uyarınca bu aralık hiçbir durumda altı ayı geçemez. Otomatik çalışan bir imha geliştirilirse bu politikada duyurulur.
- Kullanıcı talebiyle silme periyodik imhayı beklemez:
- Uygulama içinden hesap silme (Ayarlar > Hesabımı sil) hemen yapılır. İşlem yarıda kalırsa kullanıcı aynı girişle yeniden dener; her durumda en geç 30 gün içinde tamamlanır (Yönetmelik md. 12/1-a).
- Kalori takibi onayının geri alınması ("Onayımı geri çek ve verilerimi sil") kalori verilerini hemen siler.
- E-posta veya form ile gelen silme talepleri en geç 30 gün içinde sonuçlandırılır.
- Periyodik imha çalışmasının sonucu (kategori bazında sayılar) teknik sorumlu tarafından her çalışmada kayda geçirilir.
9A. Önceki sürümlerden kalan sağlık verilerinin imhası
Uygulama 2026-09-28 tarihli sahip kararıyla hastalık, sakatlık ve benzeri sağlık kayıtlarını tutmayı bıraktı. Önceki sürümlerle yazılmış veriler için işleme amacı ortadan kalktığından resen imha edilir (KVKK md. 7/1, md. 4/2-d).
| Kategori | Yer | Yöntem |
|---|---|---|
| Ortak sağlık kaydı | memberHealth/{uid} ve altındaki her şey | Özyinelemeli silme |
| PT'nin bağlanmamış üye için açtığı sağlık kayıtları | trainers/{tid}/members/{mid}/health/{id} | Belge silme |
| Vücut kompozisyonu | .../measurements/{id} içinde türü bodyFat veya muscleMass olanlar | Belge silme |
| Kalori ve makro hedefleri | trainers/{tid}/nutritionPlans/{id} içindeki targets.kcal, proteinG, carbsG, fatG | Alan silme; su hedefi kalır |
| Eski sağlık paylaşım rızaları | trainers/{tid}/members/{mid}/consents/healthShare_*, users/{uid}.healthShareConsentAt | Belge ve alan silme |
Uygulama adımları:
- Uygulamanın sağlık özelliği olmayan sürümü, Firestore kuralları ve fonksiyonlar yayına alınır; eski sürümler artık bu yollara yazamaz.
- Teknik sorumlu kuru çalıştırma yapar:
node functions/scripts/cleanup-sensitive-data.js --project=adbros-ptapp. Betik hiçbir şey yazmadan kategori bazında sayıları ve örnek yolları gösterir. Sayılar imha tutanağına yazılır. - Veri Koruma Sorumlusu onay verir.
- Teknik sorumlu aynı komutu
--applyile çalıştırır. Betik canlı veritabanında silmeden önce 10 saniye bekler; her kategori için_deletionLog'a bir kayıt yazar (zaman, kategori, sayılar, gerekçe; kimlik yok). Hata olursa betik yeniden çalıştırılır; ikinci çalıştırma yalnızca kalanı bulur. - İmha tutanağına çalıştırma tarihi, kategori bazında sayılar ve
_deletionLogkayıtlarının kimlikleri yazılır; tutanak en az üç yıl saklanır.
Betiğin kapsamadıkları:
- Serbest metin alanları (PT notları, üye hedefi, ders ve sonuç notları, program ve beslenme notları): içerikte sağlık bilgisi olup olmadığı otomatik anlaşılamaz. PT'lere uygulama içi duyuruyla bu notları gözden geçirip silmeleri hatırlatılır; Veri İşleme Sözleşmesi md. 4.3 bunu PT'nin yükümlülüğü yapar.
- Yedekler: bölüm 9B.
9B. Yedekler ve silinen veriler
- Silinen veriler (hesap silme, bölüm 9A temizliği) yedeklerde ve zaman içinde kurtarma kopyalarında, bu kopyaların saklama süresi dolana kadar kalır (tablo satır 22). Bu kopyalara yalnızca felaket kurtarma için, teknik sorumlu tarafından ve kayıt altında erişilir.
- Bir yedekten geri yükleme yapılırsa: geri yükleme tarihinden sonraki tüm
_deletionLogkayıtları gözden geçirilir; silinmiş hesaplar (kullanıcı kimliğinin özeti ile eşleştirilerek) ve bölüm 9A kategorileri yeniden silinir.
10. PT'lerin sorumluluğu
Şirket, PT kayıtları bakımından veri işleyendir. PT'nin kendi mesleki ve vergisel saklama yükümlülükleri (örneğin fatura ve makbuzlar) PT'ye aittir; Uygulama resmi belge saklama aracı değildir. PT, ihtiyaç duyduğu kayıtları hesabını silmeden önce kendisi saklamalıdır; hesap silme hemen yapılır ve geri alınamaz.
11. Güncelleme (md. 6/1-h)
Bu politika yılda en az bir kez ve mevzuat, ürün veya alt işleyen değişikliğinde gözden geçirilir.