using Netina.Common.Models.Api;
using Netina.Domain.CommandQueries.Commands;
using Netina.Domain.Dtos.RequestDtos.SeedDtos;
using Refit;

namespace Netina.WordPressDBConverter.Services.RestServices;

public interface ISeedRestApi
{
    [Post("/product/categories")]
    Task<Dictionary<int, Guid>> SeedCategoriesAsync([Body] List<SeedCategoryRequestDto> request, [Query] string key);

    [Post("/product/brands")]
    Task<Dictionary<int, Guid>> SeedBrandsAsync([Body] List<SeedBrandRequestDto> request, [Query] string key);

    [Post("/products")]
    Task SeedProductsAsync([Body] List<CreateProductCommand> request, [Query] string key);


    [Post("/blog/categories")]
    Task<Dictionary<int, Guid>> SeedBlogCategoriesAsync([Body] List<SeedBlogCategoryRequestDto> request, [Query] string key);

    [Post("/blogs")]
    Task SeedBlogsAsync([Body] List<SeedBlogRequestDto> request, [Query] string key);
    [Post("/blogs/fixslugs")]
    Task SeedBlogSlugsAsync([Body] List<SeedBlogRequestDto> request, [Query] string key);
}

public interface IUploadRestApi
{
    [Post("")]
    Task<FileUploadResponse> UploadAsync([Body] FileUploadRequest uploadRequest);
}