namespace Merchant
{
public class MerchantDetailModel
{
/// <summary>
/// Merchant's Unique Id
/// </summary>
[Required]
public Guid MerchantId { get; set; }
/// <summary>
/// Merchant's Abn Number
/// </summary>
[MaxLength(512)]
[Required]
public string Abn { get; set; }
/// <summary>
/// Merchant Modified Date
/// </summary>
public DateTime? ModifiedOn { get; set; }
/// <summary>
/// Merchant Created Date
/// </summary>
[Required]
public DateTime CreatedOn { get; set; }
/// <summary>
/// The Primary currency, Merchant operates on
/// </summary>
[MaxLength(5)]
public string Currency { get; set; }
/// <summary>
/// Merchant's Description
/// </summary>
[MaxLength(1024)]
public string Description { get; set; }
/// <summary>
/// Merchant's location google place identifier
/// </summary>
[MaxLength(500)]
public string GooglePlaceId { get; set; }
/// <summary>
/// Merchant's Active Status
/// </summary>
[Required]
public bool IsActive { get; set; }
/// <summary>
/// Merchant's Category
/// </summary>
[MaxLength(200)]
[Required]
public string MerchantCategory { get; set; }
/// <summary>
/// Merchant's Location Country
/// </summary>
[MaxLength(50)]
[Required]
public string MerchantCountry { get; set; }
/// <summary>
/// Merchant's Location Country Code
/// </summary>
[MaxLength(5)]
[Required]
public string MerchantCountryCode { get; set; }
/// <summary>
/// Merchant Identifier
/// </summary>
[MaxLength(50)]
public string MID { get; set; }
/// <summary>
/// The name of the Merchant
/// </summary>
[MaxLength(200)]
[Required]
public string MerchantName { get; set; }
/// <summary>
/// Merchant's Location PostCode
/// </summary>
[MaxLength(10)]
[Required]
public string Postcode { get; set; }
/// <summary>
/// Merchant's Location State
/// </summary>
[MaxLength(200)]
[Required]
public string State { get; set; }
/// <summary>
/// Merchant's Location Suburb
/// </summary>
[MaxLength(200)]
[Required]
public string Suburb { get; set; }
///// <summary>
///// Merchant's Trading Name
///// </summary>
[MaxLength(100)]
[Required]
public string TradingName { get; set; }
/// <summary>
/// Merchant's Website
/// </summary>
[MaxLength(512)]
public string Website { get; set; }
/// <summary>
/// Denotes if the MID of the Merchant is Verified
/// </summary>
public bool IsValidMID { get; set; }
/// <summary>
/// Merchant's Logo Detail
/// </summary>
public ImageModel Logo { get; set; }
/// <summary>
/// Merchant's Banner List
/// </summary>
public List<ImageModel> Banners { get; set; }
/// <summary>
/// Merchant's Locations List
/// </summary>
public IEnumerable<MerchantLocationResp>? Locations { get; set; }
}
public class ImageModel
{
/// <summary>
/// Image Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// Name of the Image
/// </summary>
[MaxLength(512)]
[Required]
public string FileName { get; set; }
/// <summary>
/// Type of the Image
/// </summary>
[MaxLength(20)]
[Required]
public string FileType { get; set; }
/// <summary>
/// The Image URL
/// </summary>
[MaxLength(600)]
[Required]
public string PreSignedUrl { get; set; }
}
public class MerchantLocationResp
{
public int MerchantId { get; set; }
/// <summary>
/// Unique Location Id
/// </summary>
[Required]
public int LocationId { get; set; }
/// <summary>
/// Address of the Location
/// </summary>
[Required]
[MaxLength(512)]
public string Address { get; set; }
/// <summary>
/// City of the Location
/// </summary>
[Required]
[MaxLength(50)]
public string City { get; set; }
/// <summary>
/// State of the Location
/// </summary>
[Required]
[MaxLength(50)]
public string State { get; set; }
/// <summary>
/// PostCode of the Location
/// </summary>
[Required]
[MaxLength(10)]
public string PostCode { get; set; }
/// <summary>
/// Country of the Location
/// </summary>
[Required]
[MaxLength(100)]
public string Country { get; set; }
public string Email { get; set; }
/// <summary>
/// The Location Type
/// </summary>
public int? LocationTypeId { get; set; }
/// <summary>
/// Unique Location Reference
/// </summary>
[Required]
[MaxLength(100)]
public string LocationReferenceIdentifier { get; set; }
/// <summary>
/// Google place identifier for the location
/// </summary>
[MaxLength(500)]
public string GooglePlaceId { get; set; }
/// <summary>
/// Location Latitude
/// </summary>
public double? Latitude { get; set; }
/// <summary>
/// Location Longitude
/// </summary>
public double? Longitude { get; set; }
/// <summary>
/// Description of the Location
/// </summary>
[MaxLength(1024)]
public string LocationDescription { get; set; }
/// <summary>
/// Phone Number of the Location
/// </summary>
[MaxLength(50)]
public string PhoneNumber { get; set; }
public DateTime? CreatedOn { get; set; }
public DateTime? ModifiedOn { get; set; }
/// <summary>
/// Name of the Location Merchant
/// </summary>
[Required]
[MaxLength(200)]
public string LocationName { get; set; }
/// <summary>
/// Merchant Identifier for the Location
/// </summary>
[MaxLength(50)]
public string LocationMID { get; set; }
/// <summary>
/// Denotes if the MID of the Location is Verified
/// </summary>
public bool IsValidMID { get; set; }
/// <summary>
/// List of Operating Hours
/// </summary>
[Required]
public List<TradingHours> TradingHours { get; set; }
/// <summary>
/// List of Location Images
/// </summary>
public List<ImageModel>? LocationImages { get; set; }
public int TotalRows { get; set; }
/// <summary>
/// Merchant Primary Location
/// </summary>
[Required]
public bool IsPrimaryLocation { get; set; }
/// <summary>
/// Offers Mapped to this location
/// </summary>
public Guid[] MappedOffers { get; set; }
}
public class TradingHours
{
/// <summary>
/// Unique Identifier for the Operating Day
/// </summary>
public int Id { get; set; }
/// <summary>
/// The Day of Operation
/// </summary>
[Required]
[MaxLength(10)]
public string Day { get; set; }
/// <summary>
/// Operation Start time
/// </summary>
[Required]
[MaxLength(10)]
public string OpenTime { get; set; }
/// <summary>
/// Operation End time
/// </summary>
[Required]
[MaxLength(10)]
public string CloseTime { get; set; }
/// <summary>
/// Status of Location for that day ex: Open/Close
/// </summary>
[Required]
[MaxLength(5)]
public string Status { get; set; }
}
}