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

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

  • vehicle_state : নতুন ভ্রমণের জন্য গাড়ির প্রাপ্যতা নির্ধারণ করে।
  • vehicle_type : যানবাহন তৈরি করার সময় প্রয়োজনীয় ক্ষেত্র। যানবাহনের মিলের জন্য ক্ষেত্রটি ফিল্টার মানদণ্ড হিসেবেও কাজ করতে পারে। এই ক্ষেত্রটি সেট করার বিশদ বিবরণের জন্য একটি যানবাহন তৈরি করুন দেখুন।
  • attributes[] : VehicleAttribute ধরণের একটি ঐচ্ছিক অ্যারে। যানবাহন অনুসন্ধান বা তালিকাভুক্ত করার সময় ফিল্টারিং আচরণ উন্নত করার জন্য কাস্টম মানদণ্ড নির্ধারণ করতে এগুলি ব্যবহার করুন।

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

যানবাহনের অবস্থা ক্ষেত্র

আপনার সিস্টেম গাড়ির অবস্থা OFFLINE অথবা ONLINE তে সেট করতে পারে। উদাহরণস্বরূপ, আপনি প্রতিদিন সকাল ৯ টায় গাড়ির অবস্থা ONLINE এবং প্রতিদিন বিকেল ৫ টায় OFFLINE তে সেট করতে পারেন।

অফলাইন মোড অনলাইন মোড
কোনও গাড়ি নতুন ট্রিপ গ্রহণ করছে না তা বোঝাতে OFFLINE ব্যবহার করুন। মনে রাখবেন যে এই অবস্থায় থাকাকালীন গাড়িটি নির্ধারিত ট্রিপগুলি সম্পূর্ণ করতে পারে।
  • ONLINE অবস্থায় তৈরি করা একটি Vehicle SearchVehicles প্রশ্নের উত্তরে অবিলম্বে ফেরত দেওয়া যেতে পারে। আরও বিস্তারিত জানার জন্য Search Vehicles দেখুন।
  • ONLINE অবস্থায় তৈরি যানবাহনগুলিকে CreateVehicle কলে last_location ক্ষেত্রটি ব্যবহার করা উচিত।

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

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

উদাহরণস্বরূপ, আপনি আপনার রাইডশেয়ার যানবাহনগুলিকে ক্লাস লেভেলের মধ্যে পার্থক্য করার জন্য class নামে একটি কাস্টম অ্যাট্রিবিউট ঘোষণা করতে পারেন। যানবাহনের ক্লাস লেভেলগুলি উপস্থাপন করতে আপনি নিম্নলিখিত স্ট্রিং মানগুলি ব্যবহার করবেন: ECONOMY , STANDARD , এবং LUXURY

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

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

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

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

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

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

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

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

উদাহরণ: নতুন ট্রিপের ধরণ এবং কাস্টম বৈশিষ্ট্য সক্ষম করুন

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

শুধুমাত্র একটি কী-মান অ্যাট্রিবিউট জোড়ার মান আপডেট করতে, UpdateVehicleAttributes পদ্ধতি ব্যবহার করুন এবং UpdateVehicle অনুরোধের জন্য ফিল্ড মাস্কে attribute ফিল্ডটি অন্তর্ভুক্ত করবেন না।

gRPC এবং REST এর জন্য providers.vehicles.update রেফারেন্স দেখুন।

জিআরপিসি

static final String PROJECT_ID = "project-id";
static final String VEHICLE_ID = "vid-8241890";

VehicleServiceBlockingStub vehicleService = VehicleService.newBlockingStub(channel);

String vehicleName = "providers/" + PROJECT_ID + "/vehicles/" + VEHICLE_ID;
Vehicle updatedVehicle = Vehicle.newBuilder()
    .setVehicleState(VehicleState.ONLINE)
    .addAllAttributes(ImmutableList.of(
        VehicleAttribute.newBuilder().setKey("class").setValue("ECONOMY").build(),
        VehicleAttribute.newBuilder().setKey("cash_only").setValue("false").build()))
    .setBackToBackEnabled(true)
    .build();

UpdateVehicleRequest updateVehicleRequest = UpdateVehicleRequest.newBuilder()
    .setName(vehicleName)
    .setVehicle(updatedVehicle)
    .setUpdateMask(FieldMask.newBuilder()
        .addPaths("vehicle_state")
        .addPaths("attributes")
        .addPaths("back_to_back_enabled"))
    .build();

try {
  Vehicle updatedVehicle =
      vehicleService.updateVehicle(updateVehicleRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
    case NOT_FOUND:
      // Most implementations will call CreateVehicle in this case
      break;
    case PERMISSION_DENIED:
      break;
  }
  return;
}
// If no Exception, Vehicle updated successfully.

বিশ্রাম

curl -X PUT \
  "https://fleetengine.googleapis.com/v1/providers/project-id/vehicles/vid-8241890?updateMask=vehicle_state,attributes,back_to_back_enabled" \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  --data-binary @- << EOM
{
    "vehicleState": "ONLINE",
    "attributes": [
      {"key": "class", "value": "LUXURY"},
      {"key": "cash_only", "value": "false"}
    ],
    "backToBackEnabled": true
}
EOM

এরপর কি?