// Copyright (c) Microsoft. All rights reserved.
using System;
using System.Collections.Generic;
using Microsoft.Extensions.VectorData;
using MongoDB.Bson.Serialization.Attributes;
namespace SemanticKernel.Connectors.MongoDB.UnitTests;
public class MongoHotelModel(string hotelId)
{
/// The key of the record.
[VectorStoreKey]
public string HotelId { get; init; } = hotelId;
/// A string metadata field.
[VectorStoreData(IsIndexed = true)]
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.
[BsonElement("parking_is_included")]
[VectorStoreData]
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.
[VectorStoreVector(Dimensions: 4, DistanceFunction = DistanceFunction.CosineSimilarity)]
public ReadOnlyMemory? DescriptionEmbedding { get; set; }
}