oliverbooth.dev/OliverBooth.Common/Data/Web/IProject.cs
Oliver Booth 6ec4103a3a
refactor: separate Markdig extensions from project
Also introduces .Common project to house common references and types
2024-05-05 02:18:20 +01:00

80 lines
2.0 KiB
C#

namespace OliverBooth.Common.Data.Web;
/// <summary>
/// Represents a project.
/// </summary>
public interface IProject
{
/// <summary>
/// Gets the description of the project.
/// </summary>
/// <value>The description of the project.</value>
string Description { get; }
/// <summary>
/// Gets the details of the project.
/// </summary>
/// <value>The details.</value>
string Details { get; }
/// <summary>
/// Gets the URL of the hero image.
/// </summary>
/// <value>The URL of the hero image.</value>
string HeroUrl { get; }
/// <summary>
/// Gets the ID of the project.
/// </summary>
/// <value>The ID of the project.</value>
Guid Id { get; }
/// <summary>
/// Gets the set of languages used for this project.
/// </summary>
/// <value>The languages.</value>
IReadOnlyList<string> Languages { get; }
/// <summary>
/// Gets the name of the project.
/// </summary>
/// <value>The name of the project.</value>
string Name { get; }
/// <summary>
/// Gets the rank of the project.
/// </summary>
/// <value>The rank of the project.</value>
int Rank { get; }
/// <summary>
/// Gets the host of the project.
/// </summary>
/// <value>The host of the project.</value>
string? RemoteTarget { get; }
/// <summary>
/// Gets the URL of the project.
/// </summary>
/// <value>The URL of the project.</value>
string? RemoteUrl { get; }
/// <summary>
/// Gets the slug of the project.
/// </summary>
/// <value>The slug of the project.</value>
string Slug { get; }
/// <summary>
/// Gets the status of the project.
/// </summary>
/// <value>The status of the project.</value>
ProjectStatus Status { get; }
/// <summary>
/// Gets the tagline of the project.
/// </summary>
/// <value>The tagline.</value>
string? Tagline { get; }
}