/// Entité métier ContactPolicy v4
///
/// Correspond au DTO backend : ContactPolicyResponse
library contact_policy;

import 'package:equatable/equatable.dart';

/// Politique de communication d'une organisation
class ContactPolicy extends Equatable {
  final String? id;
  final String? organisationId;
  final String typePolitique; // OUVERT | BUREAU_SEULEMENT | GROUPES_INTERNES
  final bool autoriserMembreVersMembre;
  final bool autoriserMembreVersRole;
  final bool autoriserNotesVocales;

  const ContactPolicy({
    this.id,
    this.organisationId,
    required this.typePolitique,
    this.autoriserMembreVersMembre = true,
    this.autoriserMembreVersRole = true,
    this.autoriserNotesVocales = true,
  });

  bool get isOuvert => typePolitique == 'OUVERT';
  bool get isBureauSeulement => typePolitique == 'BUREAU_SEULEMENT';
  bool get isGroupesInternes => typePolitique == 'GROUPES_INTERNES';

  @override
  List<Object?> get props => [
    id, organisationId, typePolitique,
    autoriserMembreVersMembre, autoriserMembreVersRole, autoriserNotesVocales,
  ];
}
