namespace Ikar.Shared;

public enum StoryVisibility
{
    Everyone = 0,
    Contacts = 1,
    CloseFriends = 2,
    Private = 3
}

public sealed record StoryDto(
    Guid Id,
    UserSummaryDto Author,
    string Text,
    IReadOnlyList<AttachmentDto> Attachments,
    StoryVisibility Visibility,
    bool HasProtectedContent,
    DateTimeOffset CreatedAt,
    DateTimeOffset ExpiresAt,
    DateTimeOffset? DeletedAt,
    int ViewCount,
    bool ViewedByMe);

public sealed record CreateStoryRequest(
    string? Text,
    StoryVisibility Visibility = StoryVisibility.Everyone,
    bool HasProtectedContent = false,
    int TtlSeconds = 86400);

public sealed record StoryViewDto(
    Guid StoryId,
    UserSummaryDto Viewer,
    DateTimeOffset ViewedAt);

