using System;
using CodeEffects.Rule.Attributes;
using CodeEffects.Rule.Common;
namespace CodeEffects.Rule.Demo.Filter.Asp.Common.Entities
{
// See the following article for details on this interface and why do we need to declare it:
// http://rule.codeeffects.com/Doc/Preserving-Attributes-In-Auto-Generated-Classes
public interface IOrder
{
[ExcludeFromEvaluation]
int OrderID { get; set; }
[Field(DisplayName = "Product Description", ValueInputType = ValueInputType.User)]
string ProductDescription { get; set; }
[Field(DataSourceName = "ProductTypes", DisplayName = "Product Type")]
int ProductTypeID { get; set; }
[ExcludeFromEvaluation]
string ProductTypeName { get; set; }
[Field(DisplayName = "Product SKU Number", ValueInputType = ValueInputType.User)]
string ProductSKU { get; set; }
[Field(DataSourceName = "Colors", DisplayName = "Product Color")]
int ColorID { get; set; }
[ExcludeFromEvaluation]
string ProductColorName { get; set; }
[Field(DataSourceName = "Sizes", DisplayName = "Product Size")]
int SizeID { get; set; }
[ExcludeFromEvaluation]
string ProductSizeName { get; set; }
[Field(Min = 0, Max = 1000000, DisplayName = "Sub Total")]
decimal Sub { get; set; }
[Field(Min = 0, Max = 1000000, DisplayName = "Shipping Cost")]
decimal Freight { get; set; }
[Field(Min = 0, Max = 1000000, DisplayName = "Sale Tax")]
decimal? Tax { get; set; }
[Field(Min = 0, Max = 1000000)]
decimal? Total { get; set; }
[Field(DisplayName = "First Name", ValueInputType = ValueInputType.User)]
string CustomerFirstName { get; set; }
[Field(DisplayName = "Last Name", ValueInputType = ValueInputType.User)]
string CustomerLastName { get; set; }
[Field(DisplayName = "Email", ValueInputType = ValueInputType.User)]
string CustomerEmail { get; set; }
[Field(DisplayName = "Customer Company", ValueInputType = ValueInputType.User)]
string CustomerCompany { get; set; }
[Field(DisplayName = "Cell Phone", ValueInputType = ValueInputType.User)]
string CustomerCellPone { get; set; }
[Field(DateTimeFormat = "MMMM dd, yyyy", DisplayName = "Paid Date")]
DateTime? DatePaid { get; set; }
[Field(DateTimeFormat = "MMMM dd, yyyy", DisplayName = "Order Date")]
DateTime DatePlaced { get; set; }
[Field(DateTimeFormat = "MMMM dd, yyyy", DisplayName = "Date Shipped")]
DateTime? DateShipped { get; set; }
[Field(DisplayName = "Brand Description", ValueInputType = ValueInputType.User)]
string ManufacturerName { get; set; }
[Field(DisplayName = "Brand Description", ValueInputType = ValueInputType.User)]
string ManufacturerDescription { get; set; }
[Field(Min = 0, Max = 1000000, DisplayName = "Product Cost")]
decimal ProductCost { get; set; }
[Field(DateTimeFormat = "MMMM dd, yyyy", DisplayName = "Product Manufacture Date")]
DateTime ProductionDate { get; set; }
[Field(Min = 0, Max = 1000, DisplayName = "Product Weight in Kilos")]
decimal? ProductWeight { get; set; }
}
}