// This is a generated file - do not edit.
//
// Generated from claim.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:protobuf/protobuf.dart' as $pb;

import 'collabShared.pb.dart' as $1;
import 'shared.pb.dart' as $0;

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

///
/// Aggregation object message
class Claim extends $pb.GeneratedMessage {
  factory Claim({
    $0.EventHeader? lastEventHeader,
    $0.EntityID? iD,
    ClaimPayload? payload,
  }) {
    final result = create();
    if (lastEventHeader != null) result.lastEventHeader = lastEventHeader;
    if (iD != null) result.iD = iD;
    if (payload != null) result.payload = payload;
    return result;
  }

  Claim._();

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

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

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

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

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

  @$pb.TagNumber(1)
  $0.EventHeader get lastEventHeader => $_getN(0);
  @$pb.TagNumber(1)
  set lastEventHeader($0.EventHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasLastEventHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearLastEventHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $0.EventHeader ensureLastEventHeader() => $_ensure(0);

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

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

class ClaimPayload extends $pb.GeneratedMessage {
  factory ClaimPayload({
    $core.String? claimTypeID,
    $core.String? entityID,
    $0.ClaimCriticality? criticality,
    $1.ClaimStatusStruct? status,
  @$core.Deprecated('This field is deprecated.')
    $core.String? creationDate,
    $core.Iterable<$core.String>? assignees,
    $core.String? endComment,
    $0.ClaimClosure? closure,
    $core.Iterable<$0.AttachmentSummary>? attachments,
    $core.int? attachmentNumber,
    $0.Amount? amount,
    $core.String? reason,
    $0.ClaimSector? sector,
    $0.ClaimEntityType? entityType,
    $core.Iterable<$core.String>? removedAssignees,
    $core.Iterable<$core.String>? addedAssignees,
    $core.String? reasonCode,
    $core.Iterable<$0.MetadataElement>? metaData,
    $core.String? title,
    $core.String? displayID,
    $core.String? message,
    $0.DateTime? creationDateTime,
  }) {
    final result = create();
    if (claimTypeID != null) result.claimTypeID = claimTypeID;
    if (entityID != null) result.entityID = entityID;
    if (criticality != null) result.criticality = criticality;
    if (status != null) result.status = status;
    if (creationDate != null) result.creationDate = creationDate;
    if (assignees != null) result.assignees.addAll(assignees);
    if (endComment != null) result.endComment = endComment;
    if (closure != null) result.closure = closure;
    if (attachments != null) result.attachments.addAll(attachments);
    if (attachmentNumber != null) result.attachmentNumber = attachmentNumber;
    if (amount != null) result.amount = amount;
    if (reason != null) result.reason = reason;
    if (sector != null) result.sector = sector;
    if (entityType != null) result.entityType = entityType;
    if (removedAssignees != null) result.removedAssignees.addAll(removedAssignees);
    if (addedAssignees != null) result.addedAssignees.addAll(addedAssignees);
    if (reasonCode != null) result.reasonCode = reasonCode;
    if (metaData != null) result.metaData.addAll(metaData);
    if (title != null) result.title = title;
    if (displayID != null) result.displayID = displayID;
    if (message != null) result.message = message;
    if (creationDateTime != null) result.creationDateTime = creationDateTime;
    return result;
  }

  ClaimPayload._();

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

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ClaimPayload', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'ClaimTypeID', protoName: 'ClaimTypeID')
    ..aOS(2, _omitFieldNames ? '' : 'EntityID', protoName: 'EntityID')
    ..e<$0.ClaimCriticality>(3, _omitFieldNames ? '' : 'Criticality', $pb.PbFieldType.OE, protoName: 'Criticality', defaultOrMaker: $0.ClaimCriticality.CLAIM_CRITICALITY_UNKNOWN, valueOf: $0.ClaimCriticality.valueOf, enumValues: $0.ClaimCriticality.values)
    ..aOM<$1.ClaimStatusStruct>(4, _omitFieldNames ? '' : 'Status', protoName: 'Status', subBuilder: $1.ClaimStatusStruct.create)
    ..aOS(6, _omitFieldNames ? '' : 'CreationDate', protoName: 'CreationDate')
    ..pPS(7, _omitFieldNames ? '' : 'Assignees', protoName: 'Assignees')
    ..aOS(8, _omitFieldNames ? '' : 'EndComment', protoName: 'EndComment')
    ..aOM<$0.ClaimClosure>(9, _omitFieldNames ? '' : 'Closure', protoName: 'Closure', subBuilder: $0.ClaimClosure.create)
    ..pc<$0.AttachmentSummary>(10, _omitFieldNames ? '' : 'Attachments', $pb.PbFieldType.PM, protoName: 'Attachments', subBuilder: $0.AttachmentSummary.create)
    ..a<$core.int>(11, _omitFieldNames ? '' : 'AttachmentNumber', $pb.PbFieldType.O3, protoName: 'AttachmentNumber')
    ..aOM<$0.Amount>(12, _omitFieldNames ? '' : 'Amount', protoName: 'Amount', subBuilder: $0.Amount.create)
    ..aOS(13, _omitFieldNames ? '' : 'Reason', protoName: 'Reason')
    ..e<$0.ClaimSector>(14, _omitFieldNames ? '' : 'Sector', $pb.PbFieldType.OE, protoName: 'Sector', defaultOrMaker: $0.ClaimSector.CLAIM_SECTOR_UNKNOWN, valueOf: $0.ClaimSector.valueOf, enumValues: $0.ClaimSector.values)
    ..e<$0.ClaimEntityType>(15, _omitFieldNames ? '' : 'EntityType', $pb.PbFieldType.OE, protoName: 'EntityType', defaultOrMaker: $0.ClaimEntityType.CLAIM_ENTITY_TYPE_UNKNOWN, valueOf: $0.ClaimEntityType.valueOf, enumValues: $0.ClaimEntityType.values)
    ..pPS(16, _omitFieldNames ? '' : 'RemovedAssignees', protoName: 'RemovedAssignees')
    ..pPS(17, _omitFieldNames ? '' : 'AddedAssignees', protoName: 'AddedAssignees')
    ..aOS(18, _omitFieldNames ? '' : 'ReasonCode', protoName: 'ReasonCode')
    ..pc<$0.MetadataElement>(19, _omitFieldNames ? '' : 'MetaData', $pb.PbFieldType.PM, protoName: 'MetaData', subBuilder: $0.MetadataElement.create)
    ..aOS(20, _omitFieldNames ? '' : 'Title', protoName: 'Title')
    ..aOS(21, _omitFieldNames ? '' : 'DisplayID', protoName: 'DisplayID')
    ..aOS(22, _omitFieldNames ? '' : 'Message', protoName: 'Message')
    ..aOM<$0.DateTime>(23, _omitFieldNames ? '' : 'CreationDateTime', protoName: 'CreationDateTime', subBuilder: $0.DateTime.create)
    ..hasRequiredFields = false
  ;

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

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

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

  /// Identifier of the claim type
  @$pb.TagNumber(1)
  $core.String get claimTypeID => $_getSZ(0);
  @$pb.TagNumber(1)
  set claimTypeID($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasClaimTypeID() => $_has(0);
  @$pb.TagNumber(1)
  void clearClaimTypeID() => $_clearField(1);

  /// Identifier of the targetted entity
  @$pb.TagNumber(2)
  $core.String get entityID => $_getSZ(1);
  @$pb.TagNumber(2)
  set entityID($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasEntityID() => $_has(1);
  @$pb.TagNumber(2)
  void clearEntityID() => $_clearField(2);

  /// Criticality of the claim
  @$pb.TagNumber(3)
  $0.ClaimCriticality get criticality => $_getN(2);
  @$pb.TagNumber(3)
  set criticality($0.ClaimCriticality value) => $_setField(3, value);
  @$pb.TagNumber(3)
  $core.bool hasCriticality() => $_has(2);
  @$pb.TagNumber(3)
  void clearCriticality() => $_clearField(3);

  /// Status of the claim
  @$pb.TagNumber(4)
  $1.ClaimStatusStruct get status => $_getN(3);
  @$pb.TagNumber(4)
  set status($1.ClaimStatusStruct value) => $_setField(4, value);
  @$pb.TagNumber(4)
  $core.bool hasStatus() => $_has(3);
  @$pb.TagNumber(4)
  void clearStatus() => $_clearField(4);
  @$pb.TagNumber(4)
  $1.ClaimStatusStruct ensureStatus() => $_ensure(3);

  /// Creation date of the claim
  ///  TODO Because this attribute is a kpi, when removing it we will have to alter all clickhouse tables to drop the column.
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(6)
  $core.String get creationDate => $_getSZ(4);
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(6)
  set creationDate($core.String value) => $_setString(4, value);
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(6)
  $core.bool hasCreationDate() => $_has(4);
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(6)
  void clearCreationDate() => $_clearField(6);

  /// Contacts assigned on the claim
  @$pb.TagNumber(7)
  $pb.PbList<$core.String> get assignees => $_getList(5);

  /// End comment of the claim
  @$pb.TagNumber(8)
  $core.String get endComment => $_getSZ(6);
  @$pb.TagNumber(8)
  set endComment($core.String value) => $_setString(6, value);
  @$pb.TagNumber(8)
  $core.bool hasEndComment() => $_has(6);
  @$pb.TagNumber(8)
  void clearEndComment() => $_clearField(8);

  /// Closure responsible and causes of the claim
  @$pb.TagNumber(9)
  $0.ClaimClosure get closure => $_getN(7);
  @$pb.TagNumber(9)
  set closure($0.ClaimClosure value) => $_setField(9, value);
  @$pb.TagNumber(9)
  $core.bool hasClosure() => $_has(7);
  @$pb.TagNumber(9)
  void clearClosure() => $_clearField(9);
  @$pb.TagNumber(9)
  $0.ClaimClosure ensureClosure() => $_ensure(7);

  @$pb.TagNumber(10)
  $pb.PbList<$0.AttachmentSummary> get attachments => $_getList(8);

  @$pb.TagNumber(11)
  $core.int get attachmentNumber => $_getIZ(9);
  @$pb.TagNumber(11)
  set attachmentNumber($core.int value) => $_setSignedInt32(9, value);
  @$pb.TagNumber(11)
  $core.bool hasAttachmentNumber() => $_has(9);
  @$pb.TagNumber(11)
  void clearAttachmentNumber() => $_clearField(11);

  @$pb.TagNumber(12)
  $0.Amount get amount => $_getN(10);
  @$pb.TagNumber(12)
  set amount($0.Amount value) => $_setField(12, value);
  @$pb.TagNumber(12)
  $core.bool hasAmount() => $_has(10);
  @$pb.TagNumber(12)
  void clearAmount() => $_clearField(12);
  @$pb.TagNumber(12)
  $0.Amount ensureAmount() => $_ensure(10);

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

  @$pb.TagNumber(14)
  $0.ClaimSector get sector => $_getN(12);
  @$pb.TagNumber(14)
  set sector($0.ClaimSector value) => $_setField(14, value);
  @$pb.TagNumber(14)
  $core.bool hasSector() => $_has(12);
  @$pb.TagNumber(14)
  void clearSector() => $_clearField(14);

  @$pb.TagNumber(15)
  $0.ClaimEntityType get entityType => $_getN(13);
  @$pb.TagNumber(15)
  set entityType($0.ClaimEntityType value) => $_setField(15, value);
  @$pb.TagNumber(15)
  $core.bool hasEntityType() => $_has(13);
  @$pb.TagNumber(15)
  void clearEntityType() => $_clearField(15);

  /// Contacts assigned removed from the claim
  @$pb.TagNumber(16)
  $pb.PbList<$core.String> get removedAssignees => $_getList(14);

  /// Contacts assigned added from the claim
  @$pb.TagNumber(17)
  $pb.PbList<$core.String> get addedAssignees => $_getList(15);

  @$pb.TagNumber(18)
  $core.String get reasonCode => $_getSZ(16);
  @$pb.TagNumber(18)
  set reasonCode($core.String value) => $_setString(16, value);
  @$pb.TagNumber(18)
  $core.bool hasReasonCode() => $_has(16);
  @$pb.TagNumber(18)
  void clearReasonCode() => $_clearField(18);

  /// Metadata are characteristics specific to the project. They can be of several data form (string, integer, float, boolean or timestamp)
  @$pb.TagNumber(19)
  $pb.PbList<$0.MetadataElement> get metaData => $_getList(17);

  /// Title of the claim
  @$pb.TagNumber(20)
  $core.String get title => $_getSZ(18);
  @$pb.TagNumber(20)
  set title($core.String value) => $_setString(18, value);
  @$pb.TagNumber(20)
  $core.bool hasTitle() => $_has(18);
  @$pb.TagNumber(20)
  void clearTitle() => $_clearField(20);

  /// Identifier to display, because it may differ from the EntityID
  @$pb.TagNumber(21)
  $core.String get displayID => $_getSZ(19);
  @$pb.TagNumber(21)
  set displayID($core.String value) => $_setString(19, value);
  @$pb.TagNumber(21)
  $core.bool hasDisplayID() => $_has(19);
  @$pb.TagNumber(21)
  void clearDisplayID() => $_clearField(21);

  @$pb.TagNumber(22)
  $core.String get message => $_getSZ(20);
  @$pb.TagNumber(22)
  set message($core.String value) => $_setString(20, value);
  @$pb.TagNumber(22)
  $core.bool hasMessage() => $_has(20);
  @$pb.TagNumber(22)
  void clearMessage() => $_clearField(22);

  @$pb.TagNumber(23)
  $0.DateTime get creationDateTime => $_getN(21);
  @$pb.TagNumber(23)
  set creationDateTime($0.DateTime value) => $_setField(23, value);
  @$pb.TagNumber(23)
  $core.bool hasCreationDateTime() => $_has(21);
  @$pb.TagNumber(23)
  void clearCreationDateTime() => $_clearField(23);
  @$pb.TagNumber(23)
  $0.DateTime ensureCreationDateTime() => $_ensure(21);
}

class ClaimTriplet extends $pb.GeneratedMessage {
  factory ClaimTriplet({
    Claim? current,
    Claim? previous,
    Claim? lastEvent,
  }) {
    final result = create();
    if (current != null) result.current = current;
    if (previous != null) result.previous = previous;
    if (lastEvent != null) result.lastEvent = lastEvent;
    return result;
  }

  ClaimTriplet._();

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

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

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

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

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

  @$pb.TagNumber(1)
  Claim get current => $_getN(0);
  @$pb.TagNumber(1)
  set current(Claim value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasCurrent() => $_has(0);
  @$pb.TagNumber(1)
  void clearCurrent() => $_clearField(1);
  @$pb.TagNumber(1)
  Claim ensureCurrent() => $_ensure(0);

  @$pb.TagNumber(2)
  Claim get previous => $_getN(1);
  @$pb.TagNumber(2)
  set previous(Claim value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasPrevious() => $_has(1);
  @$pb.TagNumber(2)
  void clearPrevious() => $_clearField(2);
  @$pb.TagNumber(2)
  Claim ensurePrevious() => $_ensure(1);

  @$pb.TagNumber(3)
  Claim get lastEvent => $_getN(2);
  @$pb.TagNumber(3)
  set lastEvent(Claim value) => $_setField(3, value);
  @$pb.TagNumber(3)
  $core.bool hasLastEvent() => $_has(2);
  @$pb.TagNumber(3)
  void clearLastEvent() => $_clearField(3);
  @$pb.TagNumber(3)
  Claim ensureLastEvent() => $_ensure(2);
}


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