docs: function f_kullanici_id(_kul_id, _opts) {
          // _kul_id yoksa null dön
          if (!_kul_id) {
              return null;
          }
          l.info("f_db_kullanici_id");
  
          // 1. Temel bilgileri
          // 2. Profil bilgileri
          // 3. Tahta bilgileri
          // 3.1 Tahta ID leri (_opts.Tahtalari.arrTahta_id || f_db_kullanici_tahta_idleri(kul_id) )
          // 3.2 Tahta bilgileri
          // 4. oturum durumu
  
          /** @type {OptionsKullanici} */
          var opts = result.OptionsKullanici(_opts),
              kul_id = _kul_id;
  
          return [
              // 1
              result.dbQ.hget_json_parse(result.kp.kullanici.tablo, kul_id),
              // 2
              opts.bProfil
                  ? result.dbQ.hget_json_parse(result.kp.kullanici.hsetKullaniciProfilleri, kul_id)
                  : null,
              // 3
              opts.bTahtalari
                  ? (opts.Tahtalari.arrTahta_id != null ? opts.Tahtalari.arrTahta_id : f_kullanici_tahta_idleri(kul_id))
                  : null,
              //4
              opts.bOturumDurumu
                  ? f_kullanici_oturum_durumu(parseInt(kul_id))
                  : 1
          ].allX()
              .then(function (_dbReplies) {
  
                  if (_dbReplies[0] == null) {
                      //Kullanıcı yok, boş dön
                      return null;
                  }
  
                  /** @type {Kullanici} */
                  var kullanici = schema.f_create_default_object(schema.SCHEMA.KULLANICI);
  
                  // 1
                  _.extend(kullanici, _dbReplies[0]);
                  // 2
                  kullanici.Profil = _dbReplies[1];
  
                  // 4
                  kullanici.OturumDurumu = parseInt(_dbReplies[3]);
  
                  // 3
                  var arrKullaniciTahtaIdleri = _dbReplies[2];
                  if (Array.isArray(arrKullaniciTahtaIdleri) && arrKullaniciTahtaIdleri.length == 0) {
                      kullanici.Tahtalari = [];
                      return kullanici;
                  }
  
                  return arrKullaniciTahtaIdleri
                      .mapX(null, f_kullanici_tahtalari, opts.Tahtalari).allX()
                      .then(function (_arrTahtalari) {
                          kullanici.Tahtalari = _arrTahtalari;
  
                          return kullanici;
                      });
              })
              .then(function (_dbKullanici) {
                  return _dbKullanici;
              });
      }