thread_activity
Représente une activité ou une interaction au sein d'une discussion. Les activités comprennent des messages, des sondages et des références à d'autres entités, constituant le contenu conversationnel d'une discussion.
Champs
| Champ | Type | Description |
|---|---|---|
id | uuid | Identifiant unique de l'activité (généré automatiquement) |
threadId | uuid | Référence à la discussion parente |
userId | uuid | Référence à l'utilisateur qui a créé l'activité |
type | Thread_Activity_Type_Enum | Type d'activité : Message, Poll, Thread, Meeting, Task, Decision, MeetingNote ou ChangeStatus |
data | JSON | Contenu de l'activité (le format dépend du type) |
createdAt | timestamptz | Date de création de l'activité (par défaut : horodatage actuel) |
refThreadId | uuid | Référence optionnelle à une autre discussion |
refMeetingId | uuid | Référence optionnelle à une réunion |
refTaskId | uuid | Référence optionnelle à une tâche |
refDecisionId | uuid | Référence optionnelle à une décision |
Types d’activité
Le champ type accepte les valeurs d’énumération suivantes :
- Message — Message texte ou contenu riche
- Poll — Sondage pour recueillir des avis
- Thread — Référence à une autre discussion
- Meeting — Référence à une réunion
- Task — Référence à une tâche
- Decision — Référence à une décision
- MeetingNote — Note créée pendant une réunion
- ChangeStatus — Changement de statut de discussion
Relations
Relations objet
thread— La discussion à laquelle cette activité appartientuser— L’utilisateur qui a créé l’activitérefThread— Discussion référencée (optionnel)refMeeting— Réunion référencée (optionnel)refTask— Tâche référencée (optionnel)refDecision— Décision référencée (optionnel)
Relations tableau
reactions— Réactions à cette activité (voir thread_activity_reaction)
Exemples de requêtes
Lister les activités d’une discussion
query GetThreadActivities($threadId: uuid!) {
thread_activity(
where: { threadId: { _eq: $threadId } }
order_by: { createdAt: asc }
) {
id
threadId
userId
createdAt
type
data
reactions {
id
shortcode
userId
}
refThread {
id
title
}
refMeeting {
id
title
}
refTask {
id
title
}
refDecision {
id
title
}
}
}
Exemples de mutations
Créer une activité de discussion
mutation CreateThreadActivity {
insert_thread_activity_one(
object: {
threadId: "123e4567-e89b-12d3-a456-426614174000"
userId: "123e4567-e89b-12d3-a456-426614174001"
type: Message
data: { message: "Hello team!" }
}
) {
id
type
data
createdAt
}
}
Mettre à jour une activité de discussion
mutation UpdateThreadActivity {
update_thread_activity_by_pk(
pk_columns: { id: "123e4567-e89b-12d3-a456-426614174002" }
_set: { data: { message: "Updated message" } }
) {
id
data
createdAt
}
}
Permissions
L’accès aux activités de discussion est contrôlé via les permissions Hasura et la sécurité au niveau des lignes :
- Consultation — Les utilisateurs peuvent consulter les activités des discussions auxquelles ils ont accès
- Création — Les utilisateurs peuvent créer de nouvelles activités dans les discussions auxquelles ils ont accès
- Modification — Les utilisateurs peuvent modifier leurs propres activités. Les activités de type MeetingNote peuvent aussi être modifiées par les utilisateurs ayant accès à la discussion
- Suppression — Les utilisateurs peuvent supprimer leurs propres activités. Les administrateurs et propriétaires de l’organisation peuvent supprimer toute activité
La structure du champ data varie en fonction du type d’activité. Les
activités sont ordonnées chronologiquement au sein d’une discussion et
supportent les réactions avec agrégation. Les champs de référence permettent
aux activités de se lier à d’autres entités pour le contexte.