// Copyright (c) Microsoft. All rights reserved.
using System;
using System.Collections.Generic;
using System.Text.Json.Serialization;
using Microsoft.Extensions.VectorData;
namespace SemanticKernel.Connectors.Weaviate.UnitTests;
#pragma warning disable CS8618
public sealed record WeaviateHotel
{
/// The key of the record.
[VectorStoreKey]
public Guid HotelId { get; init; }
/// 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.
[JsonPropertyName("parking_is_included")]
[VectorStoreData]
public bool ParkingIncluded { get; set; }
/// An array metadata field.
[VectorStoreData]
public List Tags { get; set; } = [];
/// A data field.
[VectorStoreData(IsFullTextIndexed = true)]
public string Description { get; set; }
[VectorStoreData]
public DateTimeOffset Timestamp { get; set; }
/// A vector field.
[VectorStoreVector(Dimensions: 4, DistanceFunction = DistanceFunction.CosineDistance, IndexKind = IndexKind.Hnsw)]
public ReadOnlyMemory? DescriptionEmbedding { get; set; }
}