using System;
using Knot.Shared.Kernel;
using MediatR;

namespace Knot.Shared.Kernel.Events;

/// <summary>
/// Domain event published when a new user is registered in the Identity system.
/// Handled by other modules to initialize their own data (e.g. Profiles, Notifications).
/// </summary>
public sealed record UserRegisteredDomainEvent(
    Guid UserId, 
    string Username, 
    string DisplayName, 
    string? Bio) : IDomainEvent;

public sealed record UserBannedDomainEvent(Guid UserId, bool IsBanned) : IDomainEvent;

public sealed record UserDeletedDomainEvent(Guid UserId) : IDomainEvent;
