Files
Beam/Beam.Data/WebResource.cs
qwsdcvghyu89 7ed05abdb8 refactor: modularize Beam into new projects and interfaces
- Introduced modularity by splitting Beam into new projects: Beam.Abstractions, Beam.Models, and Beam.Downloaders.
- Refactored existing classes into appropriate namespaces and projects.
- Replaced specific implementations with abstractions (e.g., SourceLinkBuilder to LinkBuilder, State to IState, etc.).
- Updated interfaces: added ITemplate, IArticleData, IDownloadReport, and others for improved extensibility.
- Removed deprecated classes like SourceLinkBuilder and StateChangerFactory.
- Enhanced link handling in downloaders by refactoring to use `string` over `SourceLink`.
- Consolidated shared logic under Beam.Abstractions.
2025-09-22 01:51:46 +10:00

30 lines
954 B
C#

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);
}
}