diff --git a/BeckmanComms.Api.DataTransferObjects/V2/Cafe/CafeAnnouncementDto.cs b/BeckmanComms.Api.DataTransferObjects/V2/Cafe/CafeAnnouncementDto.cs new file mode 100644 index 0000000000000000000000000000000000000000..9a32b26871c0268c8383ec56151176336dec5c9e --- /dev/null +++ b/BeckmanComms.Api.DataTransferObjects/V2/Cafe/CafeAnnouncementDto.cs @@ -0,0 +1,20 @@ +using System; + +namespace BeckmanComms.Api.DataTransferObjects.V2.Cafe +{ + /// <summary> + /// Data Transfer Object representing a cafe announcement. + /// </summary> + public class CafeAnnouncementDto + { + /// <summary> + /// Date to post the announcement. + /// </summary> + public DateTime Date { get; set; } + + /// <summary> + /// Message to be displayed in the announcement. + /// </summary> + public string Message { get; set; } + } +} \ No newline at end of file diff --git a/BeckmanComms.Api.DataTransferObjects/V2/Cafe/DishDto.cs b/BeckmanComms.Api.DataTransferObjects/V2/Cafe/DishDto.cs new file mode 100644 index 0000000000000000000000000000000000000000..f51e2d0cc20e20219cacef58ab21b5665dd9c610 --- /dev/null +++ b/BeckmanComms.Api.DataTransferObjects/V2/Cafe/DishDto.cs @@ -0,0 +1,68 @@ +using System.Collections.Generic; + +namespace BeckmanComms.Api.DataTransferObjects.V2.Cafe +{ + /// <summary> + /// Data Transfer Object representing a + /// </summary> + public class DishDto + { + /// <summary> + /// The name of the dish. + /// </summary> + public string Name { get; set; } + + /// <summary> + /// The category of the dish (e.g., Soup, Sandwich, Salad). + /// </summary> + public string Category { get; set; } + + /// <summary> + /// The description of the dish. + /// </summary> + public string Description { get; set; } + + /// <summary> + /// The path to the image of the dish. + /// </summary> + public string Image { get; set; } + + /// <summary> + /// The description of the image of the dish, suitable for use as alt text. + /// </summary> + public string ImageDescription { get; set; } + + /// <summary> + /// The standard price of the dish. + /// </summary> + public double StandardPrice { get; set; } + + /// <summary> + /// The price of a half-order of the dish, when available. + /// </summary> + public double? HalfPrice { get; set; } + + /// <summary> + /// Indicates whether the item is available every day (<c>DishDto.Specialty == false</c>) or + /// as an occasional specialty item (<c>DishDto.Specialty == true</c>). + /// </summary> + public bool Specialty { get; set; } + + /// <summary> + /// Indicates whether the item is in-stock (<c>DishDto.SoldOut == false</c>) or + /// sold-out (<c>DishDto.SoldOut == true</c>). + /// </summary> + public bool SoldOut { get; set; } + + /// <summary> + /// Indicates whether the item should not be displayed as a featured item (<c>DishDto.Featured == false</c>) or + /// should be displayed as a featured item (<c>DishDto.SoldOut == true</c>). + /// </summary> + public bool Featured { get; set; } + + /// <summary> + /// The qualities of a dish (e.g., Vegetarian, Vegan, Gluten Free). + /// </summary> + public IEnumerable<DishQualityDto> DishQualities { get; set; } + } +} \ No newline at end of file diff --git a/BeckmanComms.Api.DataTransferObjects/V2/Cafe/DishQualityDto.cs b/BeckmanComms.Api.DataTransferObjects/V2/Cafe/DishQualityDto.cs new file mode 100644 index 0000000000000000000000000000000000000000..6de39b577fe9c74a0993c40207c4e7f9f31c8c55 --- /dev/null +++ b/BeckmanComms.Api.DataTransferObjects/V2/Cafe/DishQualityDto.cs @@ -0,0 +1,26 @@ +namespace BeckmanComms.Api.DataTransferObjects.V2.Cafe +{ + /// <summary> + /// Data Transfer Object representing a dish quality. + /// </summary> + /// <example>Gluten Free</example> + /// <example>Spicy</example> + /// <example>Vegan</example> + public class DishQualityDto + { + /// <summary> + /// The name of the dish quality. + /// </summary> + public string Name { get; set; } + + /// <summary> + /// The icon representing the dish quality. + /// </summary> + public string Icon { get; set; } + + /// <summary> + /// The description of the icon representing the dish quality. + /// </summary> + public string IconDescription { get; set; } + } +} \ No newline at end of file diff --git a/BeckmanComms.Api.DataTransferObjects/V2/Cafe/MenuDto.cs b/BeckmanComms.Api.DataTransferObjects/V2/Cafe/MenuDto.cs new file mode 100644 index 0000000000000000000000000000000000000000..afc5d0d84bbca352cff7baf0a765fed9bfc16725 --- /dev/null +++ b/BeckmanComms.Api.DataTransferObjects/V2/Cafe/MenuDto.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; + +namespace BeckmanComms.Api.DataTransferObjects.V2.Cafe +{ + /// <summary> + /// Data Transfer Object containing combined menu database fields. + /// </summary> + public class MenuDto + { + /// <summary> + /// Menu date in a human-readable format. + /// </summary> + public string Title { get; set; } + + /// <summary> + /// Menu date. + /// </summary> + public DateTime Date { get; set; } + + /// <summary> + /// Collection containing dishes that belong to this menu. + /// </summary> + public IEnumerable<DishDto> Dishes { get; set; } + } +} \ No newline at end of file