|
এই ডকুমেন্টে গুরুত্বপূর্ণ গাড়ির ফিল্ড কভার করা হয়েছে যা আপনি গাড়ি তৈরি ও ম্যানেজ করার সময় আপডেট করতে পারবেন।
|
গাড়ির ফিল্ডের সম্পূর্ণ তালিকা দেখতে, এখানে যান: |
গাড়ির অ্যাট্রিবিউট ফিল্ড
আপনার গ্রাহক বা ফ্লিট অপারেটরদের জন্য আরও বেশি সার্চ ক্রাইটেরিয়া জুড়ে আপনার ফ্লিটে গাড়ি খুঁজে পেতে,
কাস্টমাইজ করা ক্রাইটেরিয়া তৈরি করতে, গাড়ির 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