namespace Offer
{
public class OfferListModel
{
/// <summary>
/// Unique offer Id
/// </summary>
[Required]
public Guid OfferId { get; set; }
/// <summary>
/// Offer Short Name
/// </summary>
[MaxLength(256)]
public string SlugName { get; set; }
/// <summary>
/// The Name of the offer
/// </summary>
[MaxLength(500)]
[Required]
public string OfferName { get; set; }
/// <summary>
/// The offer Number
/// </summary>
public string OfferNumber { get; set; }
/// <summary>
/// The offer Status
/// </summary>
[MaxLength(20)]
[Required]
public string OfferStatus { get; set; }
/// <summary>
/// Offer Category Name
/// </summary>
[MaxLength(200)]
[Required]
public string CategoryName { get; set; }
/// <summary>
/// The type of offer
/// </summary>
[MaxLength(200)]
[Required]
public string OfferTypeName { get; set; }
/// <summary>
/// The Merchant Id associated with the offer
/// </summary>
[Required]
public Guid MerchantId { get; set; }
/// <summary>
/// The Merchant Name associated with the offer
/// </summary>
[MaxLength(200)]
[Required]
public string MerchantName { get; set; }
/// <summary>
/// The Trading Name of Merchant associated with the offer
/// </summary>
//public string TradingName { get; set; }
/// <summary>
/// Offer active from date
/// </summary>
public Nullable<DateTime> ActiveFrom { get; set; }
/// <summary>
/// Offer active to date
/// </summary>
public Nullable<DateTime> ActiveTo { get; set; }
/// <summary>
/// A unique offer identifier
/// </summary>
[MaxLength(50)]
public string UniqueOfferIdentifier { get; set; }
/// <summary>
/// Offer Created Date
/// </summary>
[Required]
public DateTime CreatedOn { get; set; }
/// <summary>
/// Offer Modified Date
/// </summary>
public Nullable<DateTime> ModifiedOn { get; set; }
/// <summary>
/// Offer Rate
/// </summary>
[Required]
public decimal Rate { get; set; }
/// <summary>
/// Offer Release date
/// </summary>
public Nullable<DateTime> ReleaseDate { get; set; }
/// <summary>
/// Boosted Campaign Hours
/// </summary>
public List<OfferTypeTradingHours> BoostedCampaignHours { get; set; }
/// <summary>
/// Locations Mapped to this offer
/// </summary>
public int[] MappedLocations { get; set; }
/// <summary>
/// Denotes if the MID for all mapped locations is Verified
/// </summary>
public bool IsValidMID { get; set; }
}
public class OfferDetailModel : OfferListModel
{
/// <summary>
/// The offer display value
/// </summary>
[MaxLength(200)]
public string DisplayValue { get; set; }
/// <summary>
/// The description of offer
/// </summary>
[MaxLength(1024)]
public string OfferDescription { get; set; }
/// <summary>
/// The terms of offer
/// </summary>
[MaxLength(500)]
public string OfferTerms { get; set; }
/// <summary>
/// List of offer images
/// </summary>
public IEnumerable<OfferImageDetail> OfferImagesList { get; set; }
}
public class OfferImageDetail
{
/// <summary>
/// The Unique Id of the Image
/// </summary>
[Required]
public int Id { get; set; }
/// <summary>
/// The filename of the Image
/// </summary>
[MaxLength(500)]
[Required]
public string FileName { get; set; }
/// <summary>
/// The web URL of the Image
/// </summary>
[MaxLength(600)]
[Required]
public string PreSignedUrl { get; set; }
}
public class OfferMarketPlaceListModel
{
public int MerchantId { get; set; }
}
public class OfferValidateModel
{
/// <summary>
/// Shows if offer is valid or not
/// </summary>
[Required]
public bool IsValid { get; set; }
}
public class OfferMerchantLocation
{
public int? LocationId { get; set; }
public string LocationMerchantName { get; set; }
public string LocationTradingName { get; set; }
public string LocationType { get; set; }
public string LocationMID { get; set; }
}
public class OfferTypeTradingHours
{
/// <summary>
/// Boosted Campaign Hours Id
/// </summary>
[Required]
public int Id { get; set; }
/// <summary>
/// The Day of the week
/// </summary>
[MaxLength(50)]
[Required]
public string Day { get; set; }
/// <summary>
/// Offer Start time
/// </summary>
[MaxLength(50)]
[Required]
public string OpenTime { get; set; }
/// <summary>
/// Offer End Time
/// </summary>
[MaxLength(50)]
[Required]
public string CloseTime { get; set; }
/// <summary>
/// Offer Open/Close Status
/// </summary>
[MaxLength(50)]
[Required]
public string Status { get; set; }
public string CompareFromDay { get; set; }
public string CompareToDay { get; set; }
}
}