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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

last_location ব্যতীত অন্য ক্ষেত্রগুলির আপডেটের জন্য ফ্লিট ইঞ্জিন অন-ডিমান্ড অ্যাডমিন বিশেষাধিকার প্রয়োজন৷

উদাহরণ: নতুন ট্রিপ টাইপ এবং কাস্টম অ্যাট্রিবিউট সক্ষম করুন

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

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

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

gRPC

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

এরপর কি