ডেলিভারি ভেইকেল ফিল্ড আপডেট করুন

এই ডকুমেন্টে গুরুত্বপূর্ণ গাড়ির ফিল্ড কভার করা হয়েছে যা আপনি গাড়ি তৈরি ও ম্যানেজ করার সময় আপডেট করতে পারবেন।

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

গাড়ির ফিল্ডের সম্পূর্ণ তালিকা দেখতে, এখানে যান:

গাড়ির অ্যাট্রিবিউট ফিল্ড

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

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

তবে, কাস্টম অ্যাট্রিবিউটের ভ্যালু পরস্পরকে বাদ দিয়ে হতে হবে না। আপনি রাতে-উপলভ্য এবং রেফ্রিজারেশন-আছে-এর মতো মাপকাঠি ব্যবহার করতে পারেন। এর মধ্যে প্রতিটি আলাদা কাস্টম অ্যাট্রিবিউট হতে পারে যা বুলিয়ান ভ্যালু ব্যবহার করে। কোনও নির্দিষ্ট গাড়ির ক্ষেত্রে এই তিনটি কাস্টম অ্যাট্রিবিউটই অ্যাসাইন করা যেতে পারে, এর সাথে zone কাস্টম অ্যাট্রিবিউট উপযুক্ত স্ট্রিং ভ্যালুতে সেট করা থাকতে হবে।

গাড়ির অ্যাট্রিবিউট আপডেট করুন

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

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

গাড়ির ফিল্ডের উদাহরণ আপডেট করুন

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

last_location ছাড়া অন্য ফিল্ড আপডেট করতে Fleet Engine Delivery Admin বিশেষাধিকার প্রয়োজন।

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

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

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

gRPC

  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

এর পরে কী করতে হবে