ডেলিভারি গাড়ির ক্ষেত্র আপডেট করুন

এই নথিতে যানবাহন তৈরি এবং পরিচালনা করার সময় আপনি যে গুরুত্বপূর্ণ যানবাহন ক্ষেত্রগুলি আপডেট করতে পারেন তা অন্তর্ভুক্ত করা হয়েছে।

  • type : এই ডেলিভারি গাড়ির ধরণ। এটি এই গাড়ির জন্য তৈরি রুটগুলিকে প্রভাবিত করে।
  • attributes[] : DeliveryVehicleAttribute ধরণের একটি বিকল্প অ্যারে। যানবাহন অনুসন্ধান বা তালিকাভুক্ত করার সময় ফিল্টারিং আচরণ উন্নত করতে আপনার পরিষেবাতে যানবাহনের জন্য কাস্টম মানদণ্ড নির্ধারণ করতে এগুলি ব্যবহার করুন।

যানবাহনের ক্ষেত্রের সম্পূর্ণ তালিকার জন্য, দেখুন:

যানবাহনের বৈশিষ্ট্য ক্ষেত্র

আপনার গ্রাহক বা ফ্লিট অপারেটরদের বিভিন্ন ধরণের অনুসন্ধান মানদণ্ডের মাধ্যমে আপনার বহরে থাকা যানবাহন খুঁজে পেতে সক্ষম করার জন্য কাস্টমাইজড মানদণ্ড তৈরি করতে যানবাহনের attributes ক্ষেত্রটি ব্যবহার করুন। এটি আপনার অ্যাপগুলির ক্ষমতা বৃদ্ধি করে যাতে আপনি কেবলমাত্র অন্যান্য যানবাহন ক্ষেত্রের উপর ভিত্তি করে অনুসন্ধান মানদণ্ড ব্যবহার করে যা চান তার তুলনায় আরও ভাল যানবাহনের মিল সরবরাহ করতে পারেন। প্রতিটি যানবাহনে সর্বাধিক 100টি বৈশিষ্ট্য থাকতে পারে এবং প্রতিটির একটি অনন্য কী থাকতে হবে। মানগুলি স্ট্রিং, বুলিয়ান বা সংখ্যা হতে পারে।

উদাহরণস্বরূপ, আপনার ডেলিভারি যানবাহনগুলি শহরের কোন জোনে কাজ করে তা আলাদা করার জন্য আপনি zone নামক একটি কাস্টম অ্যাট্রিবিউট ঘোষণা করতে পারেন। আপনি বিভিন্ন জোন উপস্থাপন করতে নিম্নলিখিত স্ট্রিং মানগুলি ব্যবহার করবেন: 1B , 2C , এবং 3A । তারপরে আপনি ফ্লিট ট্র্যাকিং-এ একটি ফিল্টার ব্যবহার করতে পারেন যাতে শুধুমাত্র সেই জোনের জন্য দায়ী অপারেটরকে একটি নির্দিষ্ট জোনে কাজ করা যানবাহনগুলি দেখানো যায়।

তবে, কাস্টম অ্যাট্রিবিউট মানগুলি পারস্পরিকভাবে একচেটিয়া হতে হবে না। আপনি available-at-night এবং has-refrigeration এর মতো মানদণ্ড ব্যবহার করতে পারেন। এই প্রতিটি একটি পৃথক কাস্টম অ্যাট্রিবিউট হতে পারে যা বুলিয়ান মান ব্যবহার করে। একটি নির্দিষ্ট গাড়িকে এই তিনটি কাস্টম অ্যাট্রিবিউটের পাশাপাশি জোন কাস্টম অ্যাট্রিবিউটটি উপযুক্ত স্ট্রিং মানের সাথে সেট করা যেতে পারে।

গাড়ির বৈশিষ্ট্য আপডেট করুন

প্রতিটি attributes কী-তে প্রতি গাড়ির জন্য শুধুমাত্র একটি মান থাকতে পারে। আপনি ফিল্ড মাস্কে থাকা attributes ব্যবহার করে কাস্টম গাড়ির অ্যাট্রিবিউটগুলি ঘোষণা করেন এবং তারপরে নীচের পদ্ধতির উপর ভিত্তি করে মান প্রদান করেন।

এই UpdateDeliveryVehicle API শুধুমাত্র একটি অ্যাট্রিবিউট আপডেট করার অনুমতি দেয় না। এই পদ্ধতি ব্যবহার করার সময়, ফিল্ড মাস্কে attributes ফিল্ডের যেকোনো ব্যবহারের ফলে গাড়ির জন্য গাড়ির অ্যাট্রিবিউটের সম্পূর্ণ সেট পুনরায় ঘোষণা করা হয়। এর ফলে ফিল্ড মাস্কে স্পষ্টভাবে অন্তর্ভুক্ত না থাকা যেকোনো পূর্ব-বিদ্যমান অ্যাট্রিবিউট ওভাররাইট হয়ে যায়। যদি আপনি একটি নতুন কাস্টম অ্যাট্রিবিউট ঘোষণা করার জন্য এই পদ্ধতি ব্যবহার করেন, তাহলে আপনাকে গাড়িটি ধরে রাখতে চান এমন প্রতিটি কাস্টম অ্যাট্রিবিউটও পুনরায় ঘোষণা করতে হবে। যদি আপনি ফিল্ড মাস্কের attributes বাদ দেন, তাহলে এই পদ্ধতিটি গাড়ির জন্য পূর্বে সংজ্ঞায়িত কাস্টম অ্যাট্রিবিউটগুলিকে ছেড়ে দেয়। আপনি যদি ফিল্ড মাস্কে attributes ব্যবহার করেন, কিন্তু মান সেট না করে, তাহলে এটি গাড়ি থেকে সমস্ত কাস্টম অ্যাট্রিবিউট অপসারণের সমতুল্য।

যানবাহনের ক্ষেত্রের উদাহরণ আপডেট করুন

এই বিভাগে UpdateDeliveryVehicleRequest ব্যবহার করে গাড়ির ক্ষেত্রগুলি কীভাবে আপডেট করবেন তা দেখানো হয়েছে, যার মধ্যে একটি update_mask রয়েছে যা কোন ক্ষেত্রগুলি আপডেট করতে হবে তা নির্দেশ করে। বিস্তারিত জানার জন্য ফিল্ড মাস্কগুলিতে প্রোটোকল বাফার ডকুমেন্টেশন দেখুন।

last_location ব্যতীত অন্যান্য ক্ষেত্রগুলির আপডেটের জন্য Fleet Engine Delivery Admin সুবিধা প্রয়োজন।

উদাহরণ: কাস্টম অ্যাট্রিবিউট সেট করুন

এই উদাহরণে একটি নতুন বৈশিষ্ট্য উল্লেখ করা হয়েছে: zone । যেমনটি আগে Update vehicle attributes- এ উল্লেখ করা হয়েছে, এই পদ্ধতি ব্যবহার করে attributes ক্ষেত্র আপডেট করার জন্য আপনাকে যে সমস্ত কাস্টম বৈশিষ্ট্য ধরে রাখতে চান তা নির্দেশ করতে হবে। অতএব, উদাহরণটি একটি available-at-night মান দেখায় যা আপডেট অপারেশনের সময় ওভাররাইট হওয়া থেকে রক্ষা করে যা attributes ক্ষেত্র নির্দিষ্ট করে।

providers.deliveryVehicles.patch রেফারেন্স দেখুন।

জিআরপিসি

  static final String PROJECT_ID = "my-delivery-co-gcp-project";
  static final String VEHICLE_ID = "vehicle-8241890";

  DeliveryServiceBlockingStub deliveryService =
    DeliveryServiceGrpc.newBlockingStub(channel);

  // Vehicle settings
  String vehicleName = "providers/" + PROJECT_ID + "/deliveryVehicles/" + VEHICLE_ID;
  DeliveryVehicle myDeliveryVehicle = DeliveryVehicle.newBuilder()
      .addAllAttributes(ImmutableList.of(
          DeliveryVehicleAttribute.newBuilder().setKey("zone").setValue("1B").build(),
          DeliveryVehicleAttribute.newBuilder().setKey("available-at-night").setValue("true").build()))
      .build();

  // DeliveryVehicle request
  UpdateDeliveryVehicleRequest updateDeliveryVehicleRequest =
    UpdateDeliveryVehicleRequest.newBuilder()  // No need for the header
        .setName(vehicleName)
        .setDeliveryVehicle(myDeliveryVehicle)
        .setUpdateMask(FieldMask.newBuilder()
            .addPaths("attributes"))
        .build();

  try {
    DeliveryVehicle updatedDeliveryVehicle =
        deliveryService.updateDeliveryVehicle(updateDeliveryVehicleRequest);
  } catch (StatusRuntimeException e) {
    Status s = e.getStatus();
    switch (s.getCode()) {
       case NOT_FOUND:
         break;
       case PERMISSION_DENIED:
         break;
    }
    return;
  }

বিশ্রাম

  # Set JWT, PROJECT_ID, VEHICLE_ID, TASK1_ID, and TASK2_ID in the local
  # environment
  curl -X PATCH "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/deliveryVehicles/${VEHICLE_ID}?updateMask=attributes" \
    -H "Content-type: application/json" \
    -H "Authorization: Bearer ${JWT}" \
    --data-binary @- << EOM
  {
      "attributes": [
        {"key": "zone", "value": "1B"},
        {"key": "available-at-night", "value": "true"}
      ]
  }
  EOM

এরপর কি?