oliverbooth.dev/OliverBooth/Data/Web/IProject.cs
Oliver Booth cbfdefae71
style: redesign projects page
This change separates the project logo and details into separate pages and makes the list more visually striking.
2023-12-24 12:20:03 +00:00

80 lines
2.0 KiB
C#

namespace OliverBooth.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; }
}