namespace Tiku.Contracts;

public sealed record AuthorizationStateChangedV1(
    Guid EventId,
    Guid? TenantId,
    Guid? UserId,
    string ChangeKind,
    long Version,
    DateTimeOffset OccurredAt,
    string CorrelationId);

public sealed record TenantCapabilityChangedV1(
    Guid EventId,
    Guid TenantId,
    string ModuleCode,
    string ChangeKind,
    long Version,
    DateTimeOffset OccurredAt,
    string CorrelationId);

public sealed record MembershipLifecycleChangedV1(
    Guid EventId,
    Guid TenantId,
    Guid UserId,
    string PreviousStatus,
    string CurrentStatus,
    DateTimeOffset OccurredAt,
    string CorrelationId);

public sealed record BackgroundJobRequestedV1(
    Guid EventId,
    Guid JobId,
    Guid TenantId,
    string JobType,
    DateTimeOffset OccurredAt,
    string CorrelationId);
