Aligné avec le backend MessagingResource : - Nouveau module communication (conversations, messages, participants) - Respect des ContactPolicy (qui peut parler à qui par rôle) - Gestion MemberBlock (blocages individuels) - UI : conversations list, conversation detail, broadcast, tiles - BLoC : MessagingBloc avec events (envoyer, démarrer conversation rôle, etc.)
36 lines
1.1 KiB
Dart
36 lines
1.1 KiB
Dart
/// 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,
|
|
];
|
|
}
|