Free cookie consent management tool by TermsFeed Policy Generator

source: branches/OaaS/HeuristicLab.Services.Optimization.Billing/Model/Model.cs @ 9550

Last change on this file since 9550 was 9550, checked in by fschoepp, 11 years ago

#1888:

  • Added basic infrastructure for the billing component.
File size: 2.1 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5
6namespace HeuristicLab.Services.Optimization.Billing.Model {
7  public class ContactInformation {
8    public long Id { get; set; }
9    public string OrganizationName { get; set; }
10    public string Street { get; set; }
11    public string City { get; set; }
12    public string State { get; set; }
13    public string PostalCode { get; set; }
14    public string LastName { get; set; }
15    public string FirstName { get; set; }
16    public string Email { get; set; }
17  }
18
19  public enum PaymentMethod {
20    Cheque,
21    Visa,
22    MasterCard,
23    PayPal,
24    Diners
25  }
26
27  public class Product {
28    public long Id { get; set; }
29    public string Name { get; set; }
30    public string Description { get; set; }
31    public string ProductType { get; set; }
32    public double Price { get; set; }
33  }
34
35  public class User {
36  }
37
38  public enum OrderState {
39    Created,
40    Active,
41    Suspended,
42    Overdue,
43    Finished
44  }
45
46  public class Order {
47    public long Id { get; set; }
48    public User User { get; set; }
49    public string BillingType { get; set; }
50    public OrderState State { get; set; }
51    public string BillingPeriod { get; set; }
52    public DateTime ActiveSince { get; set; }
53    public DateTime ActiveUntil { get; set; }
54    public IList<Invoice> Invoices { get; set; }
55  }
56
57  public class OrderLine {
58    public long Id { get; set; }
59    public Order Order { get; set; }
60    public Product Product { get; set; }
61    public int Quantity { get; set; }
62    public double ProductPrice { get; set; }
63  }
64
65  public class Invoice {
66    public long Id { get; set; }
67    public User User { get; set; }
68    public DateTime Due { get; set; }
69    public string Status { get; set; }
70    public string InvoiceDocument { get; set; }
71    public Order Order { get; set; }
72  }
73
74  public class InvoiceLine {
75    public long Id { get; set; }
76    public Invoice Invoice { get; set; }
77    public Product Product { get; set; }
78    public int Quantity { get; set; }
79    public double ProductPrice { get; set; }
80  }
81
82
83}
Note: See TracBrowser for help on using the repository browser.