// Copyright (c) Microsoft. All rights reserved.
using System;
using System.Collections.Generic;
using System.Text.Json.Serialization;
using Microsoft.Extensions.VectorData;
namespace SemanticKernel.Connectors.CosmosNoSql.UnitTests;
public class CosmosNoSqlHotel(string hotelId)
{
/// The key of the record.
[VectorStoreKey]
public string HotelId { get; init; } = hotelId;
/// A string metadata field.
[VectorStoreData]
public string? HotelName { get; set; }
/// An int metadata field.
[VectorStoreData]
public int HotelCode { get; set; }
/// A float metadata field.
[VectorStoreData]
public float? HotelRating { get; set; }
/// A bool metadata field.
[VectorStoreData(StorageName = "parking_is_included")]
public bool ParkingIncluded { get; set; }
/// An array metadata field.
[VectorStoreData]
public List Tags { get; set; } = [];
/// A data field.
[VectorStoreData]
public string? Description { get; set; }
/// A vector field.
[JsonPropertyName("description_embedding")]
[VectorStoreVector(Dimensions: 4, DistanceFunction = DistanceFunction.CosineSimilarity, IndexKind = IndexKind.Flat)]
public ReadOnlyMemory? DescriptionEmbedding { get; set; }
}