Skip to content

Commit

Permalink
feat: Expose billing periods with invoice object (#222)
Browse files Browse the repository at this point in the history
  • Loading branch information
vincent-pochet authored Jan 17, 2025
1 parent e50b7dc commit f597355
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 14 deletions.
29 changes: 29 additions & 0 deletions billing_period.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package lago

import (
"time"

"github.com/google/uuid"
)

type InvoicingReason string

const (
BillingPeriodSubscriptionStarting InvoicingReason = "subscription_starting"
BillingPeriodSubscriptionPeriodic InvoicingReason = "subscription_periodic"
BillingPeriodSubscriptionTerminating InvoicingReason = "subscription_terminating"
BillingPeriodSInAdvanceCharge InvoicingReason = "in_advance_charge"
BillingPeriodInAdvanceChargePeriodic InvoicingReason = "in_advance_charge_periodic"
BillingPeriodSProgressiveBilling InvoicingReason = "progressive_billing"
)

type BillingPeriod struct {
LagoSubscriptionId uuid.UUID `json:"lago_subscription_id"`
ExternalSubscriptionId string `json:"external_subscription_id"`
LagoPlanId uuid.UUID `json:"lago_plan_id"`
SubscriptionFromDatetime time.Time `json:"subscription_from_datetime"`
SubscriptionToDatetime time.Time `json:"subscription_to_datetime"`
ChargesFromDatetime time.Time `json:"charges_from_datetime"`
ChargesToDatetime time.Time `json:"charges_to_datetime"`
InvoicingReason InvoicingReason `json:"invoicing_reason"`
}
29 changes: 15 additions & 14 deletions invoice.go
Original file line number Diff line number Diff line change
Expand Up @@ -134,12 +134,12 @@ type InvoiceCredit struct {
}

type InvoiceAppliedInvoiceCustomSection struct {
LagoId uuid.UUID `json:"lago_id,omitempty"`
LagoInvoiceId uuid.UUID `json:"lago_invoice_id,omitempty"`
Code string `json:"code,omitempty"`
Details string `json:"details,omitempty"`
DisplayName string `json:"display_name,omitempty"`
CreatedAt time.Time `json:"created_at,omitempty"`
LagoId uuid.UUID `json:"lago_id,omitempty"`
LagoInvoiceId uuid.UUID `json:"lago_invoice_id,omitempty"`
Code string `json:"code,omitempty"`
Details string `json:"details,omitempty"`
DisplayName string `json:"display_name,omitempty"`
CreatedAt time.Time `json:"created_at,omitempty"`
}

type InvoiceAppliedTax struct {
Expand Down Expand Up @@ -193,15 +193,16 @@ type Invoice struct {
Metadata []InvoiceMetadataResponse `json:"metadata,omitempty"`
VersionNumber int `json:"version_number,omitempty"`

Customer *Customer `json:"customer,omitempty"`
Subscriptions []Subscription `json:"subscriptions,omitempty"`
Customer *Customer `json:"customer,omitempty"`
BillingPeriods []BillingPeriod `json:"billing_periods,omitempty"`
Subscriptions []Subscription `json:"subscriptions,omitempty"`

Fees []Fee `json:"fees,omitempty"`
Credits []InvoiceCredit `json:"credits,omitempty"`
AppliedInvoiceCustomSections []InvoiceAppliedInvoiceCustomSection `json:"applied_invoice_custom_sections,omitempty"`
AppliedTaxes []InvoiceAppliedTax `json:"applied_taxes,omitempty"`
ErrorDetails []InvoiceErrorDetail `json:"error_details,omitempty"`
AppliedUsageThreshold []AppliedUsageThreshold `json:"applied_usage_threshold,omitempty"`
Fees []Fee `json:"fees,omitempty"`
Credits []InvoiceCredit `json:"credits,omitempty"`
AppliedInvoiceCustomSections []InvoiceAppliedInvoiceCustomSection `json:"applied_invoice_custom_sections,omitempty"`
AppliedTaxes []InvoiceAppliedTax `json:"applied_taxes,omitempty"`
ErrorDetails []InvoiceErrorDetail `json:"error_details,omitempty"`
AppliedUsageThreshold []AppliedUsageThreshold `json:"applied_usage_threshold,omitempty"`
}

type InvoicePaymentUrl struct {
Expand Down

0 comments on commit f597355

Please sign in to comment.