user_roles
Bu tablo sistem içindeki genel rol sözlüğünü taşır.
Rol bilgisini her kullanıcı satırında serbest string olarak taşımak yerine normalize biçimde ayrı bir sözlük tablosu olarak tutmak daha doğrudur. Bu tablo tek bir sorumluluk üstlenir: hangi rol kodları sistemde tanımlanmıştır, her rolün genel açıklaması nedir. Kullanıcı ile rol arasındaki ilişki FK ile kurulan users.role_id sütunu üzerinden yapılır. Böylece aynı rol birden fazla kullanıcıya atanabilir. Kısaca: sistem içinde hangi rol tipi vardır, her rol ne anlama gelir sorusunun cevabı bu tabloda yer alır.
Rol kodları ürün ailelerine göre namespace mantığı ile ayrılır:
| ID Aralığı | Segment | Kullanım |
|---|---|---|
0-9 | Sistem | Platform çekirdeği ve sistem yetkileri |
10-19 | Bayi | Kanal / bayi organizasyonu rolleri |
20-29 | Çiftçi | Maraba ürün ailesi rolleri |
30-39 | Kurumsal | Qapu kurumsal / devlet kanalı rolleri |
Bu tablo yalnız rol sözlüğünü tutmuş. Belirli bir rol taşıyan kullanıcıların hangileri olduğu burada tutulmaz (o users tablosundadır). Bir rolün belirli bir cihazda ne yapabileceği burada tanımlanmaz (o authority_permissions tablosundadır). Kısaca: hangi kullanıcı hangi rol, bir role ait kullanıcılar kimler sorusunun cevabı burada değildir.
Kolonlar
| Kolon | Tip | Null | Kısıtlar | Anlamı |
|---|---|---|---|---|
id | int | hayır | PK, AUTO INCREMENT | Rol anahtarı |
name | varchar(100) | hayır | UNIQUE | Rol kodu/adı |
description | varchar(255) | evet | - | Rol açıklaması |
Örnek Kayıtlar
- ID 1: System Admin
- ID 6: AI Agent
- ID 10: Dealer Admin
- ID 20: Farmer
- ID 21: Farmer Employee
- ID 30: Corporate Admin
- ID 31: Corporate Operator
{
"id": 1,
"name": "system_admin",
"description": "Platform çekirdeğinde tam yönetim yetkisi olan sistem yöneticisi."
}
Özet: Sistem segmenti için en üst yetkili yönetim rolü.
{
"id": 6,
"name": "ai_agent",
"description": "AI ajan servis hesabı; sadece global okuma/analiz yapar, cihaz komutları çalıştırmaz."
}
Özet: AI ajanlar için sistem rolü. pump.start, pump.stop, device.settings.change gibi yazma/komut izinleri yoktur.
{
"id": 10,
"name": "dealer_admin",
"description": "Bayi yöneticisi; bağlı müşteri portföyü, saha ekipleri ve servis operasyonlarını yönetir."
}
Özet: Bayi segmenti için kanal yönetim rolü.
{
"id": 20,
"name": "farmer",
"description": "Çiftçi, kendi tarlalarını ve çalışanlarını yönetir."
}
Özet: Tarım işletmesi sahibi, cihaz/alan yönetimi ve personel kontrol.
{
"id": 21,
"name": "farmer_employee",
"description": "Çiftçi tarafından belirlenen sınırlı yetkilere sahip çalışan."
}
Özet: Çiftçi tarafından atanan sınırlı yetkilere sahip işçi/teknisyen.
{
"id": 30,
"name": "corporate_admin",
"description": "Kurumsal firma veya kamu kurumu adına tenant ve operasyon yönetimini yapan yönetici."
}
Özet: Qapu segmentinde kurumsal üst yönetim rolü.
{
"id": 31,
"name": "corporate_operator",
"description": "Kurumsal operasyon personeli; atanan tesis ve cihazlarda günlük iş akışlarını yürütür."
}
Özet: Qapu segmentinde günlük operasyon odaklı kurumsal rol.