// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'evenement_model.dart';

// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************

EvenementModel _$EvenementModelFromJson(Map<String, dynamic> json) =>
    EvenementModel(
      id: (json['id'] as num?)?.toInt(),
      titre: json['titre'] as String,
      description: json['description'] as String?,
      dateDebut: DateTime.parse(json['dateDebut'] as String),
      dateFin: DateTime.parse(json['dateFin'] as String),
      lieu: json['lieu'] as String?,
      adresse: json['adresse'] as String?,
      ville: json['ville'] as String?,
      codePostal: json['codePostal'] as String?,
      type:
          $enumDecodeNullable(_$TypeEvenementEnumMap, json['type']) ??
          TypeEvenement.autre,
      statut:
          $enumDecodeNullable(_$StatutEvenementEnumMap, json['statut']) ??
          StatutEvenement.planifie,
      maxParticipants: (json['maxParticipants'] as num?)?.toInt(),
      participantsActuels: (json['participantsActuels'] as num?)?.toInt() ?? 0,
      organisateurId: (json['organisateurId'] as num?)?.toInt(),
      organisateurNom: json['organisateurNom'] as String?,
      organisationId: (json['organisationId'] as num?)?.toInt(),
      organisationNom: json['organisationNom'] as String?,
      priorite:
          $enumDecodeNullable(_$PrioriteEvenementEnumMap, json['priorite']) ??
          PrioriteEvenement.moyenne,
      estPublic: json['estPublic'] as bool? ?? true,
      inscriptionRequise: json['inscriptionRequise'] as bool? ?? false,
      cout: (json['cout'] as num?)?.toDouble(),
      devise: json['devise'] as String? ?? 'XOF',
      tags:
          (json['tags'] as List<dynamic>?)?.map((e) => e as String).toList() ??
          const [],
      imageUrl: json['imageUrl'] as String?,
      documentUrl: json['documentUrl'] as String?,
      notes: json['notes'] as String?,
      dateCreation: json['dateCreation'] == null
          ? null
          : DateTime.parse(json['dateCreation'] as String),
      dateModification: json['dateModification'] == null
          ? null
          : DateTime.parse(json['dateModification'] as String),
      actif: json['actif'] as bool? ?? true,
    );

Map<String, dynamic> _$EvenementModelToJson(EvenementModel instance) =>
    <String, dynamic>{
      'id': instance.id,
      'titre': instance.titre,
      'description': instance.description,
      'dateDebut': instance.dateDebut.toIso8601String(),
      'dateFin': instance.dateFin.toIso8601String(),
      'lieu': instance.lieu,
      'adresse': instance.adresse,
      'ville': instance.ville,
      'codePostal': instance.codePostal,
      'type': _$TypeEvenementEnumMap[instance.type]!,
      'statut': _$StatutEvenementEnumMap[instance.statut]!,
      'maxParticipants': instance.maxParticipants,
      'participantsActuels': instance.participantsActuels,
      'organisateurId': instance.organisateurId,
      'organisateurNom': instance.organisateurNom,
      'organisationId': instance.organisationId,
      'organisationNom': instance.organisationNom,
      'priorite': _$PrioriteEvenementEnumMap[instance.priorite]!,
      'estPublic': instance.estPublic,
      'inscriptionRequise': instance.inscriptionRequise,
      'cout': instance.cout,
      'devise': instance.devise,
      'tags': instance.tags,
      'imageUrl': instance.imageUrl,
      'documentUrl': instance.documentUrl,
      'notes': instance.notes,
      'dateCreation': instance.dateCreation?.toIso8601String(),
      'dateModification': instance.dateModification?.toIso8601String(),
      'actif': instance.actif,
    };

const _$TypeEvenementEnumMap = {
  TypeEvenement.assembleeGenerale: 'ASSEMBLEE_GENERALE',
  TypeEvenement.reunion: 'REUNION',
  TypeEvenement.formation: 'FORMATION',
  TypeEvenement.conference: 'CONFERENCE',
  TypeEvenement.atelier: 'ATELIER',
  TypeEvenement.seminaire: 'SEMINAIRE',
  TypeEvenement.evenementSocial: 'EVENEMENT_SOCIAL',
  TypeEvenement.manifestation: 'MANIFESTATION',
  TypeEvenement.celebration: 'CELEBRATION',
  TypeEvenement.autre: 'AUTRE',
};

const _$StatutEvenementEnumMap = {
  StatutEvenement.planifie: 'PLANIFIE',
  StatutEvenement.confirme: 'CONFIRME',
  StatutEvenement.enCours: 'EN_COURS',
  StatutEvenement.termine: 'TERMINE',
  StatutEvenement.annule: 'ANNULE',
  StatutEvenement.reporte: 'REPORTE',
};

const _$PrioriteEvenementEnumMap = {
  PrioriteEvenement.basse: 'BASSE',
  PrioriteEvenement.moyenne: 'MOYENNE',
  PrioriteEvenement.haute: 'HAUTE',
};
