27 lines
935 B
C#
27 lines
935 B
C#
using aeqw89.DataKeys;
|
|
using aeqw89.PersistentData;
|
|
using Beam.Abstractions;
|
|
|
|
namespace Beam.Models;
|
|
|
|
public class ResourceDefinition {
|
|
public required DataKey<ResourceDefinition> Key { get; init; }
|
|
|
|
public required MetaData Meta { get; init; }
|
|
|
|
/// <summary>Map of element name to extraction config. Keys must match ^[A-Za-z0-9_-]+$</summary>
|
|
public required Table<IDataProvider> Elements { get; init; }
|
|
|
|
/// <summary>Minimum 1 item; polymorphic segments discriminated by "type".</summary>
|
|
public required ILinkBuilder Url { get; init; }
|
|
|
|
/// <summary>Keys must match ^[A-Za-z0-9_-]+$</summary>
|
|
public required Table<ResourceRelation> Relations { get; init; }
|
|
|
|
public class MetaData {
|
|
public required string Name { get; init; }
|
|
public required string Author { get; init; }
|
|
public string? Description { get; init; }
|
|
public string? ProjectUrl { get; init; }
|
|
}
|
|
} |