1
0
mirror of https://github.com/bitwarden/server.git synced 2025-07-01 08:02:49 -05:00

upcoming invoice info

This commit is contained in:
Kyle Spearrin
2017-04-10 11:30:36 -04:00
parent 265b3285a6
commit f8baf3abb3
3 changed files with 33 additions and 4 deletions

View File

@ -43,10 +43,12 @@ namespace Bit.Core.Models.Api
PaymentSource = billing.PaymentSource != null ? new BillingSource(billing.PaymentSource) : null;
Subscription = billing.Subscription != null ? new BillingSubscription(billing.Subscription) : null;
Charges = billing.Charges.Select(c => new BillingCharge(c));
UpcomingInvoice = billing.UpcomingInvoice != null ? new BillingInvoice(billing.UpcomingInvoice) : null;
}
public BillingSource PaymentSource { get; set; }
public BillingSubscription Subscription { get; set; }
public BillingInvoice UpcomingInvoice { get; set; }
public IEnumerable<BillingCharge> Charges { get; set; }
public class BillingSource
@ -86,9 +88,9 @@ namespace Bit.Core.Models.Api
Status = sub.Status;
TrialStartDate = sub.TrialStart;
TrialEndDate = sub.TrialEnd;
NextBillDate = sub.CurrentPeriodEnd;
EndDate = sub.CurrentPeriodEnd;
CancelledDate = sub.CanceledAt;
CancelAtNextBillDate = sub.CancelAtPeriodEnd;
CancelAtEndDate = sub.CancelAtPeriodEnd;
if(sub.Items?.Data != null)
{
Items = sub.Items.Data.Select(i => new BillingSubscriptionItem(i));
@ -97,9 +99,9 @@ namespace Bit.Core.Models.Api
public DateTime? TrialStartDate { get; set; }
public DateTime? TrialEndDate { get; set; }
public DateTime? NextBillDate { get; set; }
public DateTime? EndDate { get; set; }
public DateTime? CancelledDate { get; set; }
public bool CancelAtNextBillDate { get; set; }
public bool CancelAtEndDate { get; set; }
public string Status { get; set; }
public IEnumerable<BillingSubscriptionItem> Items { get; set; } = new List<BillingSubscriptionItem>();
@ -124,6 +126,18 @@ namespace Bit.Core.Models.Api
}
}
public class BillingInvoice
{
public BillingInvoice(StripeInvoice inv)
{
Amount = inv.AmountDue / 100;
Date = inv.Date.Value;
}
public decimal Amount { get; set; }
public DateTime? Date { get; set; }
}
public class BillingCharge
{
public BillingCharge(StripeCharge charge)

View File

@ -7,6 +7,7 @@ namespace Bit.Core.Models.Business
{
public Source PaymentSource { get; set; }
public StripeSubscription Subscription { get; set; }
public StripeInvoice UpcomingInvoice { get; set; }
public IEnumerable<StripeCharge> Charges { get; set; } = new List<StripeCharge>();
}
}