/// Modèle de données ContactPolicy v4 avec désérialisation JSON
library contact_policy_model;

import '../../domain/entities/contact_policy.dart';

/// Modèle ContactPolicy v4
class ContactPolicyModel extends ContactPolicy {
  const ContactPolicyModel({
    super.id,
    super.organisationId,
    required super.typePolitique,
    super.autoriserMembreVersMembre,
    super.autoriserMembreVersRole,
    super.autoriserNotesVocales,
  });

  factory ContactPolicyModel.fromJson(Map<String, dynamic> json) {
    return ContactPolicyModel(
      id: json['id']?.toString(),
      organisationId: json['organisationId']?.toString(),
      typePolitique: json['typePolitique']?.toString() ?? 'OUVERT',
      autoriserMembreVersMembre: json['autoriserMembreVersMembre'] == true,
      autoriserMembreVersRole: json['autoriserMembreVersRole'] == true,
      autoriserNotesVocales: json['autoriserNotesVocales'] == true,
    );
  }
}
