using Ikar.Shared;

namespace Ikar.Server.Controllers;

public sealed class UploadAttachmentRequest
{
    public string? Text { get; set; }

    public Guid? ReplyToMessageId { get; set; }

    public Guid? TopicId { get; set; }

    public bool? HasProtectedContent { get; set; }

    public int? TtlSeconds { get; set; }

    public IFormFile? File { get; set; }
}

public sealed class UploadAttachmentAlbumRequest
{
    public string? Text { get; set; }

    public Guid? ReplyToMessageId { get; set; }

    public Guid? TopicId { get; set; }

    public bool? HasProtectedContent { get; set; }

    public int? TtlSeconds { get; set; }

    public List<IFormFile> Files { get; set; } = [];
}

public sealed class UploadStoryRequest
{
    public string? Text { get; set; }

    public StoryVisibility Visibility { get; set; } = StoryVisibility.Everyone;

    public bool HasProtectedContent { get; set; }

    public int TtlSeconds { get; set; } = 86400;

    public List<IFormFile> Files { get; set; } = [];
}
