using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ReAct_PME.Domain
{
    public class UploadedDoc
    {
        public string FileName { get; set; } = "";
        public byte[] Bytes { get; set; } = Array.Empty<byte>();
    }

    public class ConversationDto
    {
        public string Id { get; set; } = "";
        public DateTime Date { get; set; }
        public string IdWorkForce { get; set; } = "";
        public string Title { get; set; } = "";
        public string TypeConv { get; set; } = "";
        public List<MessageDto> Messages { get; set; } = new();
    }

    public class MessageDto
    {
        public string Id { get; set; } = "";
        public string Role { get; set; } = "";
        //public string Content { get; set; }
        public string Model { get; set; } = "";
        public bool IsUser { get; set; }
        public string Text { get; set; } = "";
        public DateTime CreatedAt { get; set; }  

    }

    public class SendMessageRequest
    {
        public string ConversationId { get; set; } = "";
        public bool IsNewConversation { get; set; } = false;
        public string IdWorkForce { get; set; } = "";
        //public string Message { get; set; } = "";
        //public bool UseRag { get; set; }
        //public bool UseExternalApi { get; set; }
        //public bool GenerateImage { get; set; }
        //public bool UseAssistant { get; set; }
        public List<string> Documents { get; set; } = new();
        public List<string> Documents64 { get; set; } = new();
        public string Text { get; set; } = "";
        public string Context { get; set; } = "";
        public string Model { get; set; } = "";
        public string Role { get; set; } = "";
        public string Mode { get; set; } = "";
        public string? Domain { get; set; } = "";
    }

    public class SendMessageResponse
    {
        public bool Success { get; set; }
        public MessageDto AssistantMessage { get; set; } = new();
    }

}
