namespace AIStudio.Provider.OpenAI;
///
/// Image sub-content for multimodal messages using nested URL format.
///
///
/// This record is used when the provider expects the format:
///
/// { "type": "image_url", "image_url": { "url": "data:image/jpeg;base64,..." } }
///
/// Used by LM Studio, VLLM, and other OpenAI-compatible providers.
///
public record SubContentImageUrlNested(SubContentType Type, ISubContentImageUrl ImageUrl) : ISubContent
{
//
// The properties of the parameters, declared again to be settable. The source generation of System.Text.Json
// sets every init-only property while it creates the object, also one missing in the JSON, so its value from
// the parameterless constructor would get lost. Keep them first and in the order of the parameters, which is
// the order they get written in:
//
public SubContentType Type { get; set; } = Type;
public ISubContentImageUrl ImageUrl { get; set; } = ImageUrl;
public SubContentImageUrlNested() : this(SubContentType.IMAGE_URL, new SubContentImageUrlData())
{
}
}