// This is a generated file - do not edit.
//
// Generated from siteBooking.proto.

// @dart = 3.3

// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names
// ignore_for_file: curly_braces_in_flow_control_structures
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
// ignore_for_file: non_constant_identifier_names

import 'dart:core' as $core;

import 'package:fixnum/fixnum.dart' as $fixnum;
import 'package:protobuf/protobuf.dart' as $pb;

import 'shared.pb.dart' as $1;
import 'slotbooking.pb.dart' as $2;

export 'package:protobuf/protobuf.dart' show GeneratedMessageGenericExtensions;

/// GetAvailableSlots
class GetBookingSlotsRequest extends $pb.GeneratedMessage {
  factory GetBookingSlotsRequest({
    $1.RequestProjectHeader? header,
    $1.AppointmentType? appointmentType,
  @$core.Deprecated('This field is deprecated.')
    $core.Iterable<$2.SegmentationSelection>? segmentationSelections,
    $core.String? startDate,
    $core.String? endDate,
    $core.Iterable<$core.String>? skippedAppointmentIDs,
    $2.AppointmentContent? loading,
    $2.AppointmentContent? unloading,
    $core.Iterable<$1.MetadataElement>? carrierInformation,
    $core.Iterable<$1.MetadataElement>? metaData,
    $core.Iterable<$1.MetadataElement>? segmentationKeys,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (appointmentType != null) result.appointmentType = appointmentType;
    if (segmentationSelections != null) result.segmentationSelections.addAll(segmentationSelections);
    if (startDate != null) result.startDate = startDate;
    if (endDate != null) result.endDate = endDate;
    if (skippedAppointmentIDs != null) result.skippedAppointmentIDs.addAll(skippedAppointmentIDs);
    if (loading != null) result.loading = loading;
    if (unloading != null) result.unloading = unloading;
    if (carrierInformation != null) result.carrierInformation.addAll(carrierInformation);
    if (metaData != null) result.metaData.addAll(metaData);
    if (segmentationKeys != null) result.segmentationKeys.addAll(segmentationKeys);
    return result;
  }

  GetBookingSlotsRequest._();

  factory GetBookingSlotsRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory GetBookingSlotsRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'GetBookingSlotsRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$1.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $1.RequestProjectHeader.create)
    ..e<$1.AppointmentType>(2, _omitFieldNames ? '' : 'AppointmentType', $pb.PbFieldType.OE, protoName: 'AppointmentType', defaultOrMaker: $1.AppointmentType.APPOINTMENT_TYPE_UNKNOWN, valueOf: $1.AppointmentType.valueOf, enumValues: $1.AppointmentType.values)
    ..pc<$2.SegmentationSelection>(4, _omitFieldNames ? '' : 'SegmentationSelections', $pb.PbFieldType.PM, protoName: 'SegmentationSelections', subBuilder: $2.SegmentationSelection.create)
    ..aOS(5, _omitFieldNames ? '' : 'StartDate', protoName: 'StartDate')
    ..aOS(6, _omitFieldNames ? '' : 'EndDate', protoName: 'EndDate')
    ..pPS(7, _omitFieldNames ? '' : 'SkippedAppointmentIDs', protoName: 'SkippedAppointmentIDs')
    ..aOM<$2.AppointmentContent>(10, _omitFieldNames ? '' : 'Loading', protoName: 'Loading', subBuilder: $2.AppointmentContent.create)
    ..aOM<$2.AppointmentContent>(11, _omitFieldNames ? '' : 'Unloading', protoName: 'Unloading', subBuilder: $2.AppointmentContent.create)
    ..pc<$1.MetadataElement>(12, _omitFieldNames ? '' : 'CarrierInformation', $pb.PbFieldType.PM, protoName: 'CarrierInformation', subBuilder: $1.MetadataElement.create)
    ..pc<$1.MetadataElement>(13, _omitFieldNames ? '' : 'MetaData', $pb.PbFieldType.PM, protoName: 'MetaData', subBuilder: $1.MetadataElement.create)
    ..pc<$1.MetadataElement>(14, _omitFieldNames ? '' : 'SegmentationKeys', $pb.PbFieldType.PM, protoName: 'SegmentationKeys', subBuilder: $1.MetadataElement.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetBookingSlotsRequest clone() => GetBookingSlotsRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetBookingSlotsRequest copyWith(void Function(GetBookingSlotsRequest) updates) => super.copyWith((message) => updates(message as GetBookingSlotsRequest)) as GetBookingSlotsRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static GetBookingSlotsRequest create() => GetBookingSlotsRequest._();
  @$core.override
  GetBookingSlotsRequest createEmptyInstance() => create();
  static $pb.PbList<GetBookingSlotsRequest> createRepeated() => $pb.PbList<GetBookingSlotsRequest>();
  @$core.pragma('dart2js:noInline')
  static GetBookingSlotsRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<GetBookingSlotsRequest>(create);
  static GetBookingSlotsRequest? _defaultInstance;

  @$pb.TagNumber(1)
  $1.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($1.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $1.RequestProjectHeader ensureHeader() => $_ensure(0);

  /// Type of appointment : Loading / Unloading / Both
  @$pb.TagNumber(2)
  $1.AppointmentType get appointmentType => $_getN(1);
  @$pb.TagNumber(2)
  set appointmentType($1.AppointmentType value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasAppointmentType() => $_has(1);
  @$pb.TagNumber(2)
  void clearAppointmentType() => $_clearField(2);

  /// Set of segmentation constraining the slot booking
  /// TODO  delete after upgrade model
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(4)
  $pb.PbList<$2.SegmentationSelection> get segmentationSelections => $_getList(2);

  @$pb.TagNumber(5)
  $core.String get startDate => $_getSZ(3);
  @$pb.TagNumber(5)
  set startDate($core.String value) => $_setString(3, value);
  @$pb.TagNumber(5)
  $core.bool hasStartDate() => $_has(3);
  @$pb.TagNumber(5)
  void clearStartDate() => $_clearField(5);

  @$pb.TagNumber(6)
  $core.String get endDate => $_getSZ(4);
  @$pb.TagNumber(6)
  set endDate($core.String value) => $_setString(4, value);
  @$pb.TagNumber(6)
  $core.bool hasEndDate() => $_has(4);
  @$pb.TagNumber(6)
  void clearEndDate() => $_clearField(6);

  /// Optional, needed to skip counting those appointments in the capacity rules
  @$pb.TagNumber(7)
  $pb.PbList<$core.String> get skippedAppointmentIDs => $_getList(5);

  /// Loading content
  @$pb.TagNumber(10)
  $2.AppointmentContent get loading => $_getN(6);
  @$pb.TagNumber(10)
  set loading($2.AppointmentContent value) => $_setField(10, value);
  @$pb.TagNumber(10)
  $core.bool hasLoading() => $_has(6);
  @$pb.TagNumber(10)
  void clearLoading() => $_clearField(10);
  @$pb.TagNumber(10)
  $2.AppointmentContent ensureLoading() => $_ensure(6);

  /// Unoading content
  @$pb.TagNumber(11)
  $2.AppointmentContent get unloading => $_getN(7);
  @$pb.TagNumber(11)
  set unloading($2.AppointmentContent value) => $_setField(11, value);
  @$pb.TagNumber(11)
  $core.bool hasUnloading() => $_has(7);
  @$pb.TagNumber(11)
  void clearUnloading() => $_clearField(11);
  @$pb.TagNumber(11)
  $2.AppointmentContent ensureUnloading() => $_ensure(7);

  /// Carrier information metadata
  @$pb.TagNumber(12)
  $pb.PbList<$1.MetadataElement> get carrierInformation => $_getList(8);

  @$pb.TagNumber(13)
  $pb.PbList<$1.MetadataElement> get metaData => $_getList(9);

  @$pb.TagNumber(14)
  $pb.PbList<$1.MetadataElement> get segmentationKeys => $_getList(10);
}

class GetBookingSlotsResponse extends $pb.GeneratedMessage {
  factory GetBookingSlotsResponse({
    $core.Iterable<$2.BookableSlot>? bookables,
    $fixnum.Int64? estimatedNeededDurationInMinutes,
  }) {
    final result = create();
    if (bookables != null) result.bookables.addAll(bookables);
    if (estimatedNeededDurationInMinutes != null) result.estimatedNeededDurationInMinutes = estimatedNeededDurationInMinutes;
    return result;
  }

  GetBookingSlotsResponse._();

  factory GetBookingSlotsResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory GetBookingSlotsResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'GetBookingSlotsResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..pc<$2.BookableSlot>(1, _omitFieldNames ? '' : 'Bookables', $pb.PbFieldType.PM, protoName: 'Bookables', subBuilder: $2.BookableSlot.create)
    ..a<$fixnum.Int64>(2, _omitFieldNames ? '' : 'EstimatedNeededDurationInMinutes', $pb.PbFieldType.OU6, protoName: 'EstimatedNeededDurationInMinutes', defaultOrMaker: $fixnum.Int64.ZERO)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetBookingSlotsResponse clone() => GetBookingSlotsResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetBookingSlotsResponse copyWith(void Function(GetBookingSlotsResponse) updates) => super.copyWith((message) => updates(message as GetBookingSlotsResponse)) as GetBookingSlotsResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static GetBookingSlotsResponse create() => GetBookingSlotsResponse._();
  @$core.override
  GetBookingSlotsResponse createEmptyInstance() => create();
  static $pb.PbList<GetBookingSlotsResponse> createRepeated() => $pb.PbList<GetBookingSlotsResponse>();
  @$core.pragma('dart2js:noInline')
  static GetBookingSlotsResponse getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<GetBookingSlotsResponse>(create);
  static GetBookingSlotsResponse? _defaultInstance;

  @$pb.TagNumber(1)
  $pb.PbList<$2.BookableSlot> get bookables => $_getList(0);

  @$pb.TagNumber(2)
  $fixnum.Int64 get estimatedNeededDurationInMinutes => $_getI64(1);
  @$pb.TagNumber(2)
  set estimatedNeededDurationInMinutes($fixnum.Int64 value) => $_setInt64(1, value);
  @$pb.TagNumber(2)
  $core.bool hasEstimatedNeededDurationInMinutes() => $_has(1);
  @$pb.TagNumber(2)
  void clearEstimatedNeededDurationInMinutes() => $_clearField(2);
}

/// BookAppointment
class BookBookingAppointmentRequest extends $pb.GeneratedMessage {
  factory BookBookingAppointmentRequest({
    $1.RequestProjectHeader? header,
    $1.EntityID? iD,
    BookAppointmentPayload? payload,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (iD != null) result.iD = iD;
    if (payload != null) result.payload = payload;
    return result;
  }

  BookBookingAppointmentRequest._();

  factory BookBookingAppointmentRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory BookBookingAppointmentRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'BookBookingAppointmentRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$1.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $1.RequestProjectHeader.create)
    ..aOM<$1.EntityID>(2, _omitFieldNames ? '' : 'ID', protoName: 'ID', subBuilder: $1.EntityID.create)
    ..aOM<BookAppointmentPayload>(3, _omitFieldNames ? '' : 'Payload', protoName: 'Payload', subBuilder: BookAppointmentPayload.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  BookBookingAppointmentRequest clone() => BookBookingAppointmentRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  BookBookingAppointmentRequest copyWith(void Function(BookBookingAppointmentRequest) updates) => super.copyWith((message) => updates(message as BookBookingAppointmentRequest)) as BookBookingAppointmentRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static BookBookingAppointmentRequest create() => BookBookingAppointmentRequest._();
  @$core.override
  BookBookingAppointmentRequest createEmptyInstance() => create();
  static $pb.PbList<BookBookingAppointmentRequest> createRepeated() => $pb.PbList<BookBookingAppointmentRequest>();
  @$core.pragma('dart2js:noInline')
  static BookBookingAppointmentRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<BookBookingAppointmentRequest>(create);
  static BookBookingAppointmentRequest? _defaultInstance;

  @$pb.TagNumber(1)
  $1.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($1.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $1.RequestProjectHeader ensureHeader() => $_ensure(0);

  @$pb.TagNumber(2)
  $1.EntityID get iD => $_getN(1);
  @$pb.TagNumber(2)
  set iD($1.EntityID value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasID() => $_has(1);
  @$pb.TagNumber(2)
  void clearID() => $_clearField(2);
  @$pb.TagNumber(2)
  $1.EntityID ensureID() => $_ensure(1);

  @$pb.TagNumber(3)
  BookAppointmentPayload get payload => $_getN(2);
  @$pb.TagNumber(3)
  set payload(BookAppointmentPayload value) => $_setField(3, value);
  @$pb.TagNumber(3)
  $core.bool hasPayload() => $_has(2);
  @$pb.TagNumber(3)
  void clearPayload() => $_clearField(3);
  @$pb.TagNumber(3)
  BookAppointmentPayload ensurePayload() => $_ensure(2);
}

class BookAppointmentPayload extends $pb.GeneratedMessage {
  factory BookAppointmentPayload({
    $1.AppointmentType? appointmentType,
  @$core.Deprecated('This field is deprecated.')
    $core.Iterable<$2.SegmentationSelection>? segmentationSelections,
    $core.Iterable<$1.MetadataElement>? carrierInformation,
    $2.Slot? slot,
    $core.Iterable<$1.MetadataElement>? metaData,
    $core.String? reason,
    $core.bool? instructionAck,
    $core.String? timeZone,
    $2.AppointmentContent? loading,
    $2.AppointmentContent? unloading,
    $core.Iterable<$core.String>? emails,
    $core.Iterable<$1.MetadataElement>? segmentationKeys,
  }) {
    final result = create();
    if (appointmentType != null) result.appointmentType = appointmentType;
    if (segmentationSelections != null) result.segmentationSelections.addAll(segmentationSelections);
    if (carrierInformation != null) result.carrierInformation.addAll(carrierInformation);
    if (slot != null) result.slot = slot;
    if (metaData != null) result.metaData.addAll(metaData);
    if (reason != null) result.reason = reason;
    if (instructionAck != null) result.instructionAck = instructionAck;
    if (timeZone != null) result.timeZone = timeZone;
    if (loading != null) result.loading = loading;
    if (unloading != null) result.unloading = unloading;
    if (emails != null) result.emails.addAll(emails);
    if (segmentationKeys != null) result.segmentationKeys.addAll(segmentationKeys);
    return result;
  }

  BookAppointmentPayload._();

  factory BookAppointmentPayload.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory BookAppointmentPayload.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'BookAppointmentPayload', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..e<$1.AppointmentType>(1, _omitFieldNames ? '' : 'AppointmentType', $pb.PbFieldType.OE, protoName: 'AppointmentType', defaultOrMaker: $1.AppointmentType.APPOINTMENT_TYPE_UNKNOWN, valueOf: $1.AppointmentType.valueOf, enumValues: $1.AppointmentType.values)
    ..pc<$2.SegmentationSelection>(2, _omitFieldNames ? '' : 'SegmentationSelections', $pb.PbFieldType.PM, protoName: 'SegmentationSelections', subBuilder: $2.SegmentationSelection.create)
    ..pc<$1.MetadataElement>(3, _omitFieldNames ? '' : 'CarrierInformation', $pb.PbFieldType.PM, protoName: 'CarrierInformation', subBuilder: $1.MetadataElement.create)
    ..aOM<$2.Slot>(4, _omitFieldNames ? '' : 'Slot', protoName: 'Slot', subBuilder: $2.Slot.create)
    ..pc<$1.MetadataElement>(6, _omitFieldNames ? '' : 'MetaData', $pb.PbFieldType.PM, protoName: 'MetaData', subBuilder: $1.MetadataElement.create)
    ..aOS(7, _omitFieldNames ? '' : 'Reason', protoName: 'Reason')
    ..aOB(8, _omitFieldNames ? '' : 'InstructionAck', protoName: 'InstructionAck')
    ..aOS(9, _omitFieldNames ? '' : 'TimeZone', protoName: 'TimeZone')
    ..aOM<$2.AppointmentContent>(10, _omitFieldNames ? '' : 'Loading', protoName: 'Loading', subBuilder: $2.AppointmentContent.create)
    ..aOM<$2.AppointmentContent>(11, _omitFieldNames ? '' : 'Unloading', protoName: 'Unloading', subBuilder: $2.AppointmentContent.create)
    ..pPS(13, _omitFieldNames ? '' : 'Emails', protoName: 'Emails')
    ..pc<$1.MetadataElement>(14, _omitFieldNames ? '' : 'SegmentationKeys', $pb.PbFieldType.PM, protoName: 'SegmentationKeys', subBuilder: $1.MetadataElement.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  BookAppointmentPayload clone() => BookAppointmentPayload()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  BookAppointmentPayload copyWith(void Function(BookAppointmentPayload) updates) => super.copyWith((message) => updates(message as BookAppointmentPayload)) as BookAppointmentPayload;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static BookAppointmentPayload create() => BookAppointmentPayload._();
  @$core.override
  BookAppointmentPayload createEmptyInstance() => create();
  static $pb.PbList<BookAppointmentPayload> createRepeated() => $pb.PbList<BookAppointmentPayload>();
  @$core.pragma('dart2js:noInline')
  static BookAppointmentPayload getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<BookAppointmentPayload>(create);
  static BookAppointmentPayload? _defaultInstance;

  /// Type of appointment : Loading / Unloading / Both
  @$pb.TagNumber(1)
  $1.AppointmentType get appointmentType => $_getN(0);
  @$pb.TagNumber(1)
  set appointmentType($1.AppointmentType value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasAppointmentType() => $_has(0);
  @$pb.TagNumber(1)
  void clearAppointmentType() => $_clearField(1);

  /// Set of segmentation constraining the slot booking
  /// TODO  delete after upgrade model
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(2)
  $pb.PbList<$2.SegmentationSelection> get segmentationSelections => $_getList(1);

  /// Carrier information metadata
  @$pb.TagNumber(3)
  $pb.PbList<$1.MetadataElement> get carrierInformation => $_getList(2);

  /// The slot booked for the appointment
  @$pb.TagNumber(4)
  $2.Slot get slot => $_getN(3);
  @$pb.TagNumber(4)
  set slot($2.Slot value) => $_setField(4, value);
  @$pb.TagNumber(4)
  $core.bool hasSlot() => $_has(3);
  @$pb.TagNumber(4)
  void clearSlot() => $_clearField(4);
  @$pb.TagNumber(4)
  $2.Slot ensureSlot() => $_ensure(3);

  @$pb.TagNumber(6)
  $pb.PbList<$1.MetadataElement> get metaData => $_getList(4);

  @$pb.TagNumber(7)
  $core.String get reason => $_getSZ(5);
  @$pb.TagNumber(7)
  set reason($core.String value) => $_setString(5, value);
  @$pb.TagNumber(7)
  $core.bool hasReason() => $_has(5);
  @$pb.TagNumber(7)
  void clearReason() => $_clearField(7);

  @$pb.TagNumber(8)
  $core.bool get instructionAck => $_getBF(6);
  @$pb.TagNumber(8)
  set instructionAck($core.bool value) => $_setBool(6, value);
  @$pb.TagNumber(8)
  $core.bool hasInstructionAck() => $_has(6);
  @$pb.TagNumber(8)
  void clearInstructionAck() => $_clearField(8);

  /// time zone of the site on which the appointment is booked
  @$pb.TagNumber(9)
  $core.String get timeZone => $_getSZ(7);
  @$pb.TagNumber(9)
  set timeZone($core.String value) => $_setString(7, value);
  @$pb.TagNumber(9)
  $core.bool hasTimeZone() => $_has(7);
  @$pb.TagNumber(9)
  void clearTimeZone() => $_clearField(9);

  /// Loading content
  @$pb.TagNumber(10)
  $2.AppointmentContent get loading => $_getN(8);
  @$pb.TagNumber(10)
  set loading($2.AppointmentContent value) => $_setField(10, value);
  @$pb.TagNumber(10)
  $core.bool hasLoading() => $_has(8);
  @$pb.TagNumber(10)
  void clearLoading() => $_clearField(10);
  @$pb.TagNumber(10)
  $2.AppointmentContent ensureLoading() => $_ensure(8);

  /// Unoading content
  @$pb.TagNumber(11)
  $2.AppointmentContent get unloading => $_getN(9);
  @$pb.TagNumber(11)
  set unloading($2.AppointmentContent value) => $_setField(11, value);
  @$pb.TagNumber(11)
  $core.bool hasUnloading() => $_has(9);
  @$pb.TagNumber(11)
  void clearUnloading() => $_clearField(11);
  @$pb.TagNumber(11)
  $2.AppointmentContent ensureUnloading() => $_ensure(9);

  /// User mails being notified on this appointment
  @$pb.TagNumber(13)
  $pb.PbList<$core.String> get emails => $_getList(10);

  @$pb.TagNumber(14)
  $pb.PbList<$1.MetadataElement> get segmentationKeys => $_getList(11);
}

class BookBookingAppointmentResponse extends $pb.GeneratedMessage {
  factory BookBookingAppointmentResponse({
    $core.String? appointmentID,
    $1.ResponseHeader? header,
    $core.Iterable<$core.String>? attendees,
  }) {
    final result = create();
    if (appointmentID != null) result.appointmentID = appointmentID;
    if (header != null) result.header = header;
    if (attendees != null) result.attendees.addAll(attendees);
    return result;
  }

  BookBookingAppointmentResponse._();

  factory BookBookingAppointmentResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory BookBookingAppointmentResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'BookBookingAppointmentResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'AppointmentID', protoName: 'AppointmentID')
    ..aOM<$1.ResponseHeader>(2, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $1.ResponseHeader.create)
    ..pPS(3, _omitFieldNames ? '' : 'Attendees', protoName: 'Attendees')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  BookBookingAppointmentResponse clone() => BookBookingAppointmentResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  BookBookingAppointmentResponse copyWith(void Function(BookBookingAppointmentResponse) updates) => super.copyWith((message) => updates(message as BookBookingAppointmentResponse)) as BookBookingAppointmentResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static BookBookingAppointmentResponse create() => BookBookingAppointmentResponse._();
  @$core.override
  BookBookingAppointmentResponse createEmptyInstance() => create();
  static $pb.PbList<BookBookingAppointmentResponse> createRepeated() => $pb.PbList<BookBookingAppointmentResponse>();
  @$core.pragma('dart2js:noInline')
  static BookBookingAppointmentResponse getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<BookBookingAppointmentResponse>(create);
  static BookBookingAppointmentResponse? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get appointmentID => $_getSZ(0);
  @$pb.TagNumber(1)
  set appointmentID($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasAppointmentID() => $_has(0);
  @$pb.TagNumber(1)
  void clearAppointmentID() => $_clearField(1);

  @$pb.TagNumber(2)
  $1.ResponseHeader get header => $_getN(1);
  @$pb.TagNumber(2)
  set header($1.ResponseHeader value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasHeader() => $_has(1);
  @$pb.TagNumber(2)
  void clearHeader() => $_clearField(2);
  @$pb.TagNumber(2)
  $1.ResponseHeader ensureHeader() => $_ensure(1);

  @$pb.TagNumber(3)
  $pb.PbList<$core.String> get attendees => $_getList(2);
}

/// CancelAppointment
class CancelBookingAppointmentRequest extends $pb.GeneratedMessage {
  factory CancelBookingAppointmentRequest({
    $1.RequestProjectHeader? header,
    $1.EntityID? iD,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (iD != null) result.iD = iD;
    return result;
  }

  CancelBookingAppointmentRequest._();

  factory CancelBookingAppointmentRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory CancelBookingAppointmentRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'CancelBookingAppointmentRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$1.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $1.RequestProjectHeader.create)
    ..aOM<$1.EntityID>(2, _omitFieldNames ? '' : 'ID', protoName: 'ID', subBuilder: $1.EntityID.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CancelBookingAppointmentRequest clone() => CancelBookingAppointmentRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CancelBookingAppointmentRequest copyWith(void Function(CancelBookingAppointmentRequest) updates) => super.copyWith((message) => updates(message as CancelBookingAppointmentRequest)) as CancelBookingAppointmentRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static CancelBookingAppointmentRequest create() => CancelBookingAppointmentRequest._();
  @$core.override
  CancelBookingAppointmentRequest createEmptyInstance() => create();
  static $pb.PbList<CancelBookingAppointmentRequest> createRepeated() => $pb.PbList<CancelBookingAppointmentRequest>();
  @$core.pragma('dart2js:noInline')
  static CancelBookingAppointmentRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<CancelBookingAppointmentRequest>(create);
  static CancelBookingAppointmentRequest? _defaultInstance;

  @$pb.TagNumber(1)
  $1.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($1.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $1.RequestProjectHeader ensureHeader() => $_ensure(0);

  @$pb.TagNumber(2)
  $1.EntityID get iD => $_getN(1);
  @$pb.TagNumber(2)
  set iD($1.EntityID value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasID() => $_has(1);
  @$pb.TagNumber(2)
  void clearID() => $_clearField(2);
  @$pb.TagNumber(2)
  $1.EntityID ensureID() => $_ensure(1);
}

class CancelBookingAppointmentResponse extends $pb.GeneratedMessage {
  factory CancelBookingAppointmentResponse({
    $core.String? appointmentID,
    $1.ResponseHeader? header,
  }) {
    final result = create();
    if (appointmentID != null) result.appointmentID = appointmentID;
    if (header != null) result.header = header;
    return result;
  }

  CancelBookingAppointmentResponse._();

  factory CancelBookingAppointmentResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory CancelBookingAppointmentResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'CancelBookingAppointmentResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'AppointmentID', protoName: 'AppointmentID')
    ..aOM<$1.ResponseHeader>(2, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $1.ResponseHeader.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CancelBookingAppointmentResponse clone() => CancelBookingAppointmentResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CancelBookingAppointmentResponse copyWith(void Function(CancelBookingAppointmentResponse) updates) => super.copyWith((message) => updates(message as CancelBookingAppointmentResponse)) as CancelBookingAppointmentResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static CancelBookingAppointmentResponse create() => CancelBookingAppointmentResponse._();
  @$core.override
  CancelBookingAppointmentResponse createEmptyInstance() => create();
  static $pb.PbList<CancelBookingAppointmentResponse> createRepeated() => $pb.PbList<CancelBookingAppointmentResponse>();
  @$core.pragma('dart2js:noInline')
  static CancelBookingAppointmentResponse getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<CancelBookingAppointmentResponse>(create);
  static CancelBookingAppointmentResponse? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get appointmentID => $_getSZ(0);
  @$pb.TagNumber(1)
  set appointmentID($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasAppointmentID() => $_has(0);
  @$pb.TagNumber(1)
  void clearAppointmentID() => $_clearField(1);

  @$pb.TagNumber(2)
  $1.ResponseHeader get header => $_getN(1);
  @$pb.TagNumber(2)
  set header($1.ResponseHeader value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasHeader() => $_has(1);
  @$pb.TagNumber(2)
  void clearHeader() => $_clearField(2);
  @$pb.TagNumber(2)
  $1.ResponseHeader ensureHeader() => $_ensure(1);
}

/// DeleteAppointment
class DeleteBookingAppointmentRequest extends $pb.GeneratedMessage {
  factory DeleteBookingAppointmentRequest({
    $1.RequestProjectHeader? header,
    $1.EntityID? iD,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (iD != null) result.iD = iD;
    return result;
  }

  DeleteBookingAppointmentRequest._();

  factory DeleteBookingAppointmentRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory DeleteBookingAppointmentRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'DeleteBookingAppointmentRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$1.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $1.RequestProjectHeader.create)
    ..aOM<$1.EntityID>(2, _omitFieldNames ? '' : 'ID', protoName: 'ID', subBuilder: $1.EntityID.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  DeleteBookingAppointmentRequest clone() => DeleteBookingAppointmentRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  DeleteBookingAppointmentRequest copyWith(void Function(DeleteBookingAppointmentRequest) updates) => super.copyWith((message) => updates(message as DeleteBookingAppointmentRequest)) as DeleteBookingAppointmentRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static DeleteBookingAppointmentRequest create() => DeleteBookingAppointmentRequest._();
  @$core.override
  DeleteBookingAppointmentRequest createEmptyInstance() => create();
  static $pb.PbList<DeleteBookingAppointmentRequest> createRepeated() => $pb.PbList<DeleteBookingAppointmentRequest>();
  @$core.pragma('dart2js:noInline')
  static DeleteBookingAppointmentRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<DeleteBookingAppointmentRequest>(create);
  static DeleteBookingAppointmentRequest? _defaultInstance;

  @$pb.TagNumber(1)
  $1.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($1.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $1.RequestProjectHeader ensureHeader() => $_ensure(0);

  @$pb.TagNumber(2)
  $1.EntityID get iD => $_getN(1);
  @$pb.TagNumber(2)
  set iD($1.EntityID value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasID() => $_has(1);
  @$pb.TagNumber(2)
  void clearID() => $_clearField(2);
  @$pb.TagNumber(2)
  $1.EntityID ensureID() => $_ensure(1);
}

class DeleteBookingAppointmentResponse extends $pb.GeneratedMessage {
  factory DeleteBookingAppointmentResponse({
    $core.String? appointmentID,
    $1.ResponseHeader? header,
  }) {
    final result = create();
    if (appointmentID != null) result.appointmentID = appointmentID;
    if (header != null) result.header = header;
    return result;
  }

  DeleteBookingAppointmentResponse._();

  factory DeleteBookingAppointmentResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory DeleteBookingAppointmentResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'DeleteBookingAppointmentResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'AppointmentID', protoName: 'AppointmentID')
    ..aOM<$1.ResponseHeader>(2, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $1.ResponseHeader.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  DeleteBookingAppointmentResponse clone() => DeleteBookingAppointmentResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  DeleteBookingAppointmentResponse copyWith(void Function(DeleteBookingAppointmentResponse) updates) => super.copyWith((message) => updates(message as DeleteBookingAppointmentResponse)) as DeleteBookingAppointmentResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static DeleteBookingAppointmentResponse create() => DeleteBookingAppointmentResponse._();
  @$core.override
  DeleteBookingAppointmentResponse createEmptyInstance() => create();
  static $pb.PbList<DeleteBookingAppointmentResponse> createRepeated() => $pb.PbList<DeleteBookingAppointmentResponse>();
  @$core.pragma('dart2js:noInline')
  static DeleteBookingAppointmentResponse getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<DeleteBookingAppointmentResponse>(create);
  static DeleteBookingAppointmentResponse? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get appointmentID => $_getSZ(0);
  @$pb.TagNumber(1)
  set appointmentID($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasAppointmentID() => $_has(0);
  @$pb.TagNumber(1)
  void clearAppointmentID() => $_clearField(1);

  @$pb.TagNumber(2)
  $1.ResponseHeader get header => $_getN(1);
  @$pb.TagNumber(2)
  set header($1.ResponseHeader value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasHeader() => $_has(1);
  @$pb.TagNumber(2)
  void clearHeader() => $_clearField(2);
  @$pb.TagNumber(2)
  $1.ResponseHeader ensureHeader() => $_ensure(1);
}

/// Reschedule
class RescheduleBookingAppointmentRequest extends $pb.GeneratedMessage {
  factory RescheduleBookingAppointmentRequest({
    $1.RequestProjectHeader? header,
    $1.EntityID? iD,
    RescheduleAppointmentPayload? payload,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (iD != null) result.iD = iD;
    if (payload != null) result.payload = payload;
    return result;
  }

  RescheduleBookingAppointmentRequest._();

  factory RescheduleBookingAppointmentRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory RescheduleBookingAppointmentRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'RescheduleBookingAppointmentRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$1.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $1.RequestProjectHeader.create)
    ..aOM<$1.EntityID>(2, _omitFieldNames ? '' : 'ID', protoName: 'ID', subBuilder: $1.EntityID.create)
    ..aOM<RescheduleAppointmentPayload>(3, _omitFieldNames ? '' : 'Payload', protoName: 'Payload', subBuilder: RescheduleAppointmentPayload.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  RescheduleBookingAppointmentRequest clone() => RescheduleBookingAppointmentRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  RescheduleBookingAppointmentRequest copyWith(void Function(RescheduleBookingAppointmentRequest) updates) => super.copyWith((message) => updates(message as RescheduleBookingAppointmentRequest)) as RescheduleBookingAppointmentRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static RescheduleBookingAppointmentRequest create() => RescheduleBookingAppointmentRequest._();
  @$core.override
  RescheduleBookingAppointmentRequest createEmptyInstance() => create();
  static $pb.PbList<RescheduleBookingAppointmentRequest> createRepeated() => $pb.PbList<RescheduleBookingAppointmentRequest>();
  @$core.pragma('dart2js:noInline')
  static RescheduleBookingAppointmentRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<RescheduleBookingAppointmentRequest>(create);
  static RescheduleBookingAppointmentRequest? _defaultInstance;

  @$pb.TagNumber(1)
  $1.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($1.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $1.RequestProjectHeader ensureHeader() => $_ensure(0);

  @$pb.TagNumber(2)
  $1.EntityID get iD => $_getN(1);
  @$pb.TagNumber(2)
  set iD($1.EntityID value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasID() => $_has(1);
  @$pb.TagNumber(2)
  void clearID() => $_clearField(2);
  @$pb.TagNumber(2)
  $1.EntityID ensureID() => $_ensure(1);

  @$pb.TagNumber(3)
  RescheduleAppointmentPayload get payload => $_getN(2);
  @$pb.TagNumber(3)
  set payload(RescheduleAppointmentPayload value) => $_setField(3, value);
  @$pb.TagNumber(3)
  $core.bool hasPayload() => $_has(2);
  @$pb.TagNumber(3)
  void clearPayload() => $_clearField(3);
  @$pb.TagNumber(3)
  RescheduleAppointmentPayload ensurePayload() => $_ensure(2);
}

class RescheduleAppointmentPayload extends $pb.GeneratedMessage {
  factory RescheduleAppointmentPayload({
    $2.Slot? slot,
  }) {
    final result = create();
    if (slot != null) result.slot = slot;
    return result;
  }

  RescheduleAppointmentPayload._();

  factory RescheduleAppointmentPayload.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory RescheduleAppointmentPayload.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'RescheduleAppointmentPayload', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$2.Slot>(1, _omitFieldNames ? '' : 'Slot', protoName: 'Slot', subBuilder: $2.Slot.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  RescheduleAppointmentPayload clone() => RescheduleAppointmentPayload()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  RescheduleAppointmentPayload copyWith(void Function(RescheduleAppointmentPayload) updates) => super.copyWith((message) => updates(message as RescheduleAppointmentPayload)) as RescheduleAppointmentPayload;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static RescheduleAppointmentPayload create() => RescheduleAppointmentPayload._();
  @$core.override
  RescheduleAppointmentPayload createEmptyInstance() => create();
  static $pb.PbList<RescheduleAppointmentPayload> createRepeated() => $pb.PbList<RescheduleAppointmentPayload>();
  @$core.pragma('dart2js:noInline')
  static RescheduleAppointmentPayload getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<RescheduleAppointmentPayload>(create);
  static RescheduleAppointmentPayload? _defaultInstance;

  /// The slots to book for the appointment
  @$pb.TagNumber(1)
  $2.Slot get slot => $_getN(0);
  @$pb.TagNumber(1)
  set slot($2.Slot value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasSlot() => $_has(0);
  @$pb.TagNumber(1)
  void clearSlot() => $_clearField(1);
  @$pb.TagNumber(1)
  $2.Slot ensureSlot() => $_ensure(0);
}

/// Update
class UpdateBookingAppointmentRequest extends $pb.GeneratedMessage {
  factory UpdateBookingAppointmentRequest({
    $1.RequestProjectHeader? header,
    $1.EntityID? iD,
    UpdateAppointmentPayload? payload,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (iD != null) result.iD = iD;
    if (payload != null) result.payload = payload;
    return result;
  }

  UpdateBookingAppointmentRequest._();

  factory UpdateBookingAppointmentRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory UpdateBookingAppointmentRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'UpdateBookingAppointmentRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$1.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $1.RequestProjectHeader.create)
    ..aOM<$1.EntityID>(2, _omitFieldNames ? '' : 'ID', protoName: 'ID', subBuilder: $1.EntityID.create)
    ..aOM<UpdateAppointmentPayload>(3, _omitFieldNames ? '' : 'Payload', protoName: 'Payload', subBuilder: UpdateAppointmentPayload.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  UpdateBookingAppointmentRequest clone() => UpdateBookingAppointmentRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  UpdateBookingAppointmentRequest copyWith(void Function(UpdateBookingAppointmentRequest) updates) => super.copyWith((message) => updates(message as UpdateBookingAppointmentRequest)) as UpdateBookingAppointmentRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static UpdateBookingAppointmentRequest create() => UpdateBookingAppointmentRequest._();
  @$core.override
  UpdateBookingAppointmentRequest createEmptyInstance() => create();
  static $pb.PbList<UpdateBookingAppointmentRequest> createRepeated() => $pb.PbList<UpdateBookingAppointmentRequest>();
  @$core.pragma('dart2js:noInline')
  static UpdateBookingAppointmentRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<UpdateBookingAppointmentRequest>(create);
  static UpdateBookingAppointmentRequest? _defaultInstance;

  @$pb.TagNumber(1)
  $1.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($1.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $1.RequestProjectHeader ensureHeader() => $_ensure(0);

  @$pb.TagNumber(2)
  $1.EntityID get iD => $_getN(1);
  @$pb.TagNumber(2)
  set iD($1.EntityID value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasID() => $_has(1);
  @$pb.TagNumber(2)
  void clearID() => $_clearField(2);
  @$pb.TagNumber(2)
  $1.EntityID ensureID() => $_ensure(1);

  @$pb.TagNumber(3)
  UpdateAppointmentPayload get payload => $_getN(2);
  @$pb.TagNumber(3)
  set payload(UpdateAppointmentPayload value) => $_setField(3, value);
  @$pb.TagNumber(3)
  $core.bool hasPayload() => $_has(2);
  @$pb.TagNumber(3)
  void clearPayload() => $_clearField(3);
  @$pb.TagNumber(3)
  UpdateAppointmentPayload ensurePayload() => $_ensure(2);
}

class UpdateAppointmentPayload extends $pb.GeneratedMessage {
  factory UpdateAppointmentPayload({
    $2.Slot? slot,
    $core.String? reason,
    $core.String? timeZone,
    $2.AppointmentContent? loading,
    $2.AppointmentContent? unloading,
    $core.Iterable<$core.String>? emails,
  }) {
    final result = create();
    if (slot != null) result.slot = slot;
    if (reason != null) result.reason = reason;
    if (timeZone != null) result.timeZone = timeZone;
    if (loading != null) result.loading = loading;
    if (unloading != null) result.unloading = unloading;
    if (emails != null) result.emails.addAll(emails);
    return result;
  }

  UpdateAppointmentPayload._();

  factory UpdateAppointmentPayload.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory UpdateAppointmentPayload.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'UpdateAppointmentPayload', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$2.Slot>(1, _omitFieldNames ? '' : 'Slot', protoName: 'Slot', subBuilder: $2.Slot.create)
    ..aOS(3, _omitFieldNames ? '' : 'Reason', protoName: 'Reason')
    ..aOS(4, _omitFieldNames ? '' : 'TimeZone', protoName: 'TimeZone')
    ..aOM<$2.AppointmentContent>(5, _omitFieldNames ? '' : 'Loading', protoName: 'Loading', subBuilder: $2.AppointmentContent.create)
    ..aOM<$2.AppointmentContent>(6, _omitFieldNames ? '' : 'Unloading', protoName: 'Unloading', subBuilder: $2.AppointmentContent.create)
    ..pPS(8, _omitFieldNames ? '' : 'Emails', protoName: 'Emails')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  UpdateAppointmentPayload clone() => UpdateAppointmentPayload()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  UpdateAppointmentPayload copyWith(void Function(UpdateAppointmentPayload) updates) => super.copyWith((message) => updates(message as UpdateAppointmentPayload)) as UpdateAppointmentPayload;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static UpdateAppointmentPayload create() => UpdateAppointmentPayload._();
  @$core.override
  UpdateAppointmentPayload createEmptyInstance() => create();
  static $pb.PbList<UpdateAppointmentPayload> createRepeated() => $pb.PbList<UpdateAppointmentPayload>();
  @$core.pragma('dart2js:noInline')
  static UpdateAppointmentPayload getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<UpdateAppointmentPayload>(create);
  static UpdateAppointmentPayload? _defaultInstance;

  /// The slots to book for the appointment
  @$pb.TagNumber(1)
  $2.Slot get slot => $_getN(0);
  @$pb.TagNumber(1)
  set slot($2.Slot value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasSlot() => $_has(0);
  @$pb.TagNumber(1)
  void clearSlot() => $_clearField(1);
  @$pb.TagNumber(1)
  $2.Slot ensureSlot() => $_ensure(0);

  /// In case of no reference, The Reason for which the appointment has no commissions
  @$pb.TagNumber(3)
  $core.String get reason => $_getSZ(1);
  @$pb.TagNumber(3)
  set reason($core.String value) => $_setString(1, value);
  @$pb.TagNumber(3)
  $core.bool hasReason() => $_has(1);
  @$pb.TagNumber(3)
  void clearReason() => $_clearField(3);

  /// time zone, useful only if a WMS send a message
  @$pb.TagNumber(4)
  $core.String get timeZone => $_getSZ(2);
  @$pb.TagNumber(4)
  set timeZone($core.String value) => $_setString(2, value);
  @$pb.TagNumber(4)
  $core.bool hasTimeZone() => $_has(2);
  @$pb.TagNumber(4)
  void clearTimeZone() => $_clearField(4);

  /// Loading content
  @$pb.TagNumber(5)
  $2.AppointmentContent get loading => $_getN(3);
  @$pb.TagNumber(5)
  set loading($2.AppointmentContent value) => $_setField(5, value);
  @$pb.TagNumber(5)
  $core.bool hasLoading() => $_has(3);
  @$pb.TagNumber(5)
  void clearLoading() => $_clearField(5);
  @$pb.TagNumber(5)
  $2.AppointmentContent ensureLoading() => $_ensure(3);

  /// Unoading content
  @$pb.TagNumber(6)
  $2.AppointmentContent get unloading => $_getN(4);
  @$pb.TagNumber(6)
  set unloading($2.AppointmentContent value) => $_setField(6, value);
  @$pb.TagNumber(6)
  $core.bool hasUnloading() => $_has(4);
  @$pb.TagNumber(6)
  void clearUnloading() => $_clearField(6);
  @$pb.TagNumber(6)
  $2.AppointmentContent ensureUnloading() => $_ensure(4);

  /// User mails being notified on this appointment
  @$pb.TagNumber(8)
  $pb.PbList<$core.String> get emails => $_getList(5);
}

class WMSUpdateBookingAppointmentRequest extends $pb.GeneratedMessage {
  factory WMSUpdateBookingAppointmentRequest({
    $1.RequestProjectHeader? header,
    $1.EntityID? iD,
    WMSUpdateAppointmentPayload? payload,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (iD != null) result.iD = iD;
    if (payload != null) result.payload = payload;
    return result;
  }

  WMSUpdateBookingAppointmentRequest._();

  factory WMSUpdateBookingAppointmentRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory WMSUpdateBookingAppointmentRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'WMSUpdateBookingAppointmentRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$1.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $1.RequestProjectHeader.create)
    ..aOM<$1.EntityID>(2, _omitFieldNames ? '' : 'ID', protoName: 'ID', subBuilder: $1.EntityID.create)
    ..aOM<WMSUpdateAppointmentPayload>(3, _omitFieldNames ? '' : 'Payload', protoName: 'Payload', subBuilder: WMSUpdateAppointmentPayload.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  WMSUpdateBookingAppointmentRequest clone() => WMSUpdateBookingAppointmentRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  WMSUpdateBookingAppointmentRequest copyWith(void Function(WMSUpdateBookingAppointmentRequest) updates) => super.copyWith((message) => updates(message as WMSUpdateBookingAppointmentRequest)) as WMSUpdateBookingAppointmentRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static WMSUpdateBookingAppointmentRequest create() => WMSUpdateBookingAppointmentRequest._();
  @$core.override
  WMSUpdateBookingAppointmentRequest createEmptyInstance() => create();
  static $pb.PbList<WMSUpdateBookingAppointmentRequest> createRepeated() => $pb.PbList<WMSUpdateBookingAppointmentRequest>();
  @$core.pragma('dart2js:noInline')
  static WMSUpdateBookingAppointmentRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<WMSUpdateBookingAppointmentRequest>(create);
  static WMSUpdateBookingAppointmentRequest? _defaultInstance;

  @$pb.TagNumber(1)
  $1.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($1.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $1.RequestProjectHeader ensureHeader() => $_ensure(0);

  @$pb.TagNumber(2)
  $1.EntityID get iD => $_getN(1);
  @$pb.TagNumber(2)
  set iD($1.EntityID value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasID() => $_has(1);
  @$pb.TagNumber(2)
  void clearID() => $_clearField(2);
  @$pb.TagNumber(2)
  $1.EntityID ensureID() => $_ensure(1);

  @$pb.TagNumber(3)
  WMSUpdateAppointmentPayload get payload => $_getN(2);
  @$pb.TagNumber(3)
  set payload(WMSUpdateAppointmentPayload value) => $_setField(3, value);
  @$pb.TagNumber(3)
  $core.bool hasPayload() => $_has(2);
  @$pb.TagNumber(3)
  void clearPayload() => $_clearField(3);
  @$pb.TagNumber(3)
  WMSUpdateAppointmentPayload ensurePayload() => $_ensure(2);
}

class WMSUpdateAppointmentPayload extends $pb.GeneratedMessage {
  factory WMSUpdateAppointmentPayload({
    $2.Slot? slot,
    $core.String? timeZone,
    $2.AppointmentContent? loading,
    $2.AppointmentContent? unloading,
    $core.String? reason,
  }) {
    final result = create();
    if (slot != null) result.slot = slot;
    if (timeZone != null) result.timeZone = timeZone;
    if (loading != null) result.loading = loading;
    if (unloading != null) result.unloading = unloading;
    if (reason != null) result.reason = reason;
    return result;
  }

  WMSUpdateAppointmentPayload._();

  factory WMSUpdateAppointmentPayload.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory WMSUpdateAppointmentPayload.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'WMSUpdateAppointmentPayload', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$2.Slot>(1, _omitFieldNames ? '' : 'Slot', protoName: 'Slot', subBuilder: $2.Slot.create)
    ..aOS(2, _omitFieldNames ? '' : 'TimeZone', protoName: 'TimeZone')
    ..aOM<$2.AppointmentContent>(3, _omitFieldNames ? '' : 'Loading', protoName: 'Loading', subBuilder: $2.AppointmentContent.create)
    ..aOM<$2.AppointmentContent>(4, _omitFieldNames ? '' : 'Unloading', protoName: 'Unloading', subBuilder: $2.AppointmentContent.create)
    ..aOS(5, _omitFieldNames ? '' : 'Reason', protoName: 'Reason')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  WMSUpdateAppointmentPayload clone() => WMSUpdateAppointmentPayload()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  WMSUpdateAppointmentPayload copyWith(void Function(WMSUpdateAppointmentPayload) updates) => super.copyWith((message) => updates(message as WMSUpdateAppointmentPayload)) as WMSUpdateAppointmentPayload;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static WMSUpdateAppointmentPayload create() => WMSUpdateAppointmentPayload._();
  @$core.override
  WMSUpdateAppointmentPayload createEmptyInstance() => create();
  static $pb.PbList<WMSUpdateAppointmentPayload> createRepeated() => $pb.PbList<WMSUpdateAppointmentPayload>();
  @$core.pragma('dart2js:noInline')
  static WMSUpdateAppointmentPayload getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<WMSUpdateAppointmentPayload>(create);
  static WMSUpdateAppointmentPayload? _defaultInstance;

  /// The slot to book for the appointment
  @$pb.TagNumber(1)
  $2.Slot get slot => $_getN(0);
  @$pb.TagNumber(1)
  set slot($2.Slot value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasSlot() => $_has(0);
  @$pb.TagNumber(1)
  void clearSlot() => $_clearField(1);
  @$pb.TagNumber(1)
  $2.Slot ensureSlot() => $_ensure(0);

  /// time zone, useful only if a WMS send a message
  @$pb.TagNumber(2)
  $core.String get timeZone => $_getSZ(1);
  @$pb.TagNumber(2)
  set timeZone($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasTimeZone() => $_has(1);
  @$pb.TagNumber(2)
  void clearTimeZone() => $_clearField(2);

  /// Loading content
  @$pb.TagNumber(3)
  $2.AppointmentContent get loading => $_getN(2);
  @$pb.TagNumber(3)
  set loading($2.AppointmentContent value) => $_setField(3, value);
  @$pb.TagNumber(3)
  $core.bool hasLoading() => $_has(2);
  @$pb.TagNumber(3)
  void clearLoading() => $_clearField(3);
  @$pb.TagNumber(3)
  $2.AppointmentContent ensureLoading() => $_ensure(2);

  /// Unoading content
  @$pb.TagNumber(4)
  $2.AppointmentContent get unloading => $_getN(3);
  @$pb.TagNumber(4)
  set unloading($2.AppointmentContent value) => $_setField(4, value);
  @$pb.TagNumber(4)
  $core.bool hasUnloading() => $_has(3);
  @$pb.TagNumber(4)
  void clearUnloading() => $_clearField(4);
  @$pb.TagNumber(4)
  $2.AppointmentContent ensureUnloading() => $_ensure(3);

  /// In case of no reference, The Reason for which the appointment has no commissions
  @$pb.TagNumber(5)
  $core.String get reason => $_getSZ(4);
  @$pb.TagNumber(5)
  set reason($core.String value) => $_setString(4, value);
  @$pb.TagNumber(5)
  $core.bool hasReason() => $_has(4);
  @$pb.TagNumber(5)
  void clearReason() => $_clearField(5);
}

/// CheckAppointmentEditable
class CheckBookingAppointmentEditableRequest extends $pb.GeneratedMessage {
  factory CheckBookingAppointmentEditableRequest({
    $1.RequestProjectHeader? header,
    $1.EntityID? iD,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (iD != null) result.iD = iD;
    return result;
  }

  CheckBookingAppointmentEditableRequest._();

  factory CheckBookingAppointmentEditableRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory CheckBookingAppointmentEditableRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'CheckBookingAppointmentEditableRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$1.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $1.RequestProjectHeader.create)
    ..aOM<$1.EntityID>(2, _omitFieldNames ? '' : 'ID', protoName: 'ID', subBuilder: $1.EntityID.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CheckBookingAppointmentEditableRequest clone() => CheckBookingAppointmentEditableRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CheckBookingAppointmentEditableRequest copyWith(void Function(CheckBookingAppointmentEditableRequest) updates) => super.copyWith((message) => updates(message as CheckBookingAppointmentEditableRequest)) as CheckBookingAppointmentEditableRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static CheckBookingAppointmentEditableRequest create() => CheckBookingAppointmentEditableRequest._();
  @$core.override
  CheckBookingAppointmentEditableRequest createEmptyInstance() => create();
  static $pb.PbList<CheckBookingAppointmentEditableRequest> createRepeated() => $pb.PbList<CheckBookingAppointmentEditableRequest>();
  @$core.pragma('dart2js:noInline')
  static CheckBookingAppointmentEditableRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<CheckBookingAppointmentEditableRequest>(create);
  static CheckBookingAppointmentEditableRequest? _defaultInstance;

  @$pb.TagNumber(1)
  $1.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($1.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $1.RequestProjectHeader ensureHeader() => $_ensure(0);

  @$pb.TagNumber(2)
  $1.EntityID get iD => $_getN(1);
  @$pb.TagNumber(2)
  set iD($1.EntityID value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasID() => $_has(1);
  @$pb.TagNumber(2)
  void clearID() => $_clearField(2);
  @$pb.TagNumber(2)
  $1.EntityID ensureID() => $_ensure(1);
}

class CheckBookingAppointmentEditableResponse extends $pb.GeneratedMessage {
  factory CheckBookingAppointmentEditableResponse({
    $core.bool? isEditable,
    $core.bool? isForceEditable,
    $core.bool? siteHasCarrierInformation,
  }) {
    final result = create();
    if (isEditable != null) result.isEditable = isEditable;
    if (isForceEditable != null) result.isForceEditable = isForceEditable;
    if (siteHasCarrierInformation != null) result.siteHasCarrierInformation = siteHasCarrierInformation;
    return result;
  }

  CheckBookingAppointmentEditableResponse._();

  factory CheckBookingAppointmentEditableResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory CheckBookingAppointmentEditableResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'CheckBookingAppointmentEditableResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOB(3, _omitFieldNames ? '' : 'IsEditable', protoName: 'IsEditable')
    ..aOB(4, _omitFieldNames ? '' : 'IsForceEditable', protoName: 'IsForceEditable')
    ..aOB(5, _omitFieldNames ? '' : 'SiteHasCarrierInformation', protoName: 'SiteHasCarrierInformation')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CheckBookingAppointmentEditableResponse clone() => CheckBookingAppointmentEditableResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CheckBookingAppointmentEditableResponse copyWith(void Function(CheckBookingAppointmentEditableResponse) updates) => super.copyWith((message) => updates(message as CheckBookingAppointmentEditableResponse)) as CheckBookingAppointmentEditableResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static CheckBookingAppointmentEditableResponse create() => CheckBookingAppointmentEditableResponse._();
  @$core.override
  CheckBookingAppointmentEditableResponse createEmptyInstance() => create();
  static $pb.PbList<CheckBookingAppointmentEditableResponse> createRepeated() => $pb.PbList<CheckBookingAppointmentEditableResponse>();
  @$core.pragma('dart2js:noInline')
  static CheckBookingAppointmentEditableResponse getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<CheckBookingAppointmentEditableResponse>(create);
  static CheckBookingAppointmentEditableResponse? _defaultInstance;

  /// ResponseHeader Header = 2;
  /// bool IsModifiable = 1;
  @$pb.TagNumber(3)
  $core.bool get isEditable => $_getBF(0);
  @$pb.TagNumber(3)
  set isEditable($core.bool value) => $_setBool(0, value);
  @$pb.TagNumber(3)
  $core.bool hasIsEditable() => $_has(0);
  @$pb.TagNumber(3)
  void clearIsEditable() => $_clearField(3);

  @$pb.TagNumber(4)
  $core.bool get isForceEditable => $_getBF(1);
  @$pb.TagNumber(4)
  set isForceEditable($core.bool value) => $_setBool(1, value);
  @$pb.TagNumber(4)
  $core.bool hasIsForceEditable() => $_has(1);
  @$pb.TagNumber(4)
  void clearIsForceEditable() => $_clearField(4);

  @$pb.TagNumber(5)
  $core.bool get siteHasCarrierInformation => $_getBF(2);
  @$pb.TagNumber(5)
  set siteHasCarrierInformation($core.bool value) => $_setBool(2, value);
  @$pb.TagNumber(5)
  $core.bool hasSiteHasCarrierInformation() => $_has(2);
  @$pb.TagNumber(5)
  void clearSiteHasCarrierInformation() => $_clearField(5);
}

/// LockBookingRequest
class LockBookingRequest extends $pb.GeneratedMessage {
  factory LockBookingRequest({
    $core.String? projectID,
    $core.String? appointmentID,
  }) {
    final result = create();
    if (projectID != null) result.projectID = projectID;
    if (appointmentID != null) result.appointmentID = appointmentID;
    return result;
  }

  LockBookingRequest._();

  factory LockBookingRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory LockBookingRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'LockBookingRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'ProjectID', protoName: 'ProjectID')
    ..aOS(2, _omitFieldNames ? '' : 'AppointmentID', protoName: 'AppointmentID')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  LockBookingRequest clone() => LockBookingRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  LockBookingRequest copyWith(void Function(LockBookingRequest) updates) => super.copyWith((message) => updates(message as LockBookingRequest)) as LockBookingRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static LockBookingRequest create() => LockBookingRequest._();
  @$core.override
  LockBookingRequest createEmptyInstance() => create();
  static $pb.PbList<LockBookingRequest> createRepeated() => $pb.PbList<LockBookingRequest>();
  @$core.pragma('dart2js:noInline')
  static LockBookingRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<LockBookingRequest>(create);
  static LockBookingRequest? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get projectID => $_getSZ(0);
  @$pb.TagNumber(1)
  set projectID($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasProjectID() => $_has(0);
  @$pb.TagNumber(1)
  void clearProjectID() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get appointmentID => $_getSZ(1);
  @$pb.TagNumber(2)
  set appointmentID($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasAppointmentID() => $_has(1);
  @$pb.TagNumber(2)
  void clearAppointmentID() => $_clearField(2);
}

class LockBookingResponse extends $pb.GeneratedMessage {
  factory LockBookingResponse() => create();

  LockBookingResponse._();

  factory LockBookingResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory LockBookingResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'LockBookingResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  LockBookingResponse clone() => LockBookingResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  LockBookingResponse copyWith(void Function(LockBookingResponse) updates) => super.copyWith((message) => updates(message as LockBookingResponse)) as LockBookingResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static LockBookingResponse create() => LockBookingResponse._();
  @$core.override
  LockBookingResponse createEmptyInstance() => create();
  static $pb.PbList<LockBookingResponse> createRepeated() => $pb.PbList<LockBookingResponse>();
  @$core.pragma('dart2js:noInline')
  static LockBookingResponse getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<LockBookingResponse>(create);
  static LockBookingResponse? _defaultInstance;
}


const $core.bool _omitFieldNames = $core.bool.fromEnvironment('protobuf.omit_field_names');
const $core.bool _omitMessageNames = $core.bool.fromEnvironment('protobuf.omit_message_names');
