using API.DTO.Color.Response;
using FastEndpoints;
using Microsoft.EntityFrameworkCore;

namespace API.Endpoints.Color;

public class GetAllColorsEndpoint(AppDbContext appDbContext) : EndpointWithoutRequest<List<GetColorDto>>
{
    public override void Configure()
    {
        Get("/colors");
        AllowAnonymous();
    }

    public override async Task HandleAsync(CancellationToken ct)
    {
        List<GetColorDto> responseDto = await appDbContext.Colors
            .Select(a => new GetColorDto
                {
                    Id = a.Id,
                    Label = a.Label,
                }
            ).ToListAsync(ct);
        await Send.OkAsync(responseDto, ct);
    }
}