namespace NostrStreamer.Database; public class UserStream { public Guid Id { get; init; } = Guid.NewGuid(); public string PubKey { get; init; } = null!; public User User { get; init; } = null!; public string ClientId { get; init; } = null!; public DateTime Starts { get; init; } = DateTime.UtcNow; public DateTime? Ends { get; set; } public UserStreamState State { get; set; } /// /// Nostr Event for this stream /// public string Event { get; set; } = null!; /// /// Recording URL of ended stream /// public string? Recording { get; set; } public Guid EndpointId { get; init; } public IngestEndpoint Endpoint { get; init; } = null!; public List Guests { get; init; } = new(); public List Recordings { get; init; } = new(); } public enum UserStreamState { Planned = 1, Live = 2, Ended = 3 }