using aeqw89.DataKeys;
using Beam.Dynamic;

namespace Beam.Data {
    /// <summary>
    /// Represents a specific resource accessible online; e.g. a book's contents.
    /// </summary>
    /// <remarks>
    /// A resource should be one-to-one with a web request. 
    /// </remarks>
    /// <param name="key"></param>
    public class WebResource(DataKey<WebResource> key) : IKeyed<WebResource> {
        public DataKey<WebResource> Key { get; set; } = key;

        public required DataKey<DataBindings> Bindings { get; set; }
        public string? Name { get; set; }
        public string? Domain { get; set; }
        public string? Description { get; set; }


        public WebResource() : this(new(string.Empty)) { }

        //public Entity ToRecord(BeamDataDictionary sdd) {
        //    return new Entity(this, sdd.Bindings[Bindings]);
        //}

        //public record class Entity(WebResource Resource, DataBindings Bindings);
    }
}
