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

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

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

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

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

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

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

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

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

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

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

ভেইকেল ফিল্ডের উদাহরণ আপডেট করা

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

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;
  }

REST

  # 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

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