@hed-hog/billing 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/dist/adapters/billing-gateway-registry.d.ts +8 -0
  2. package/dist/adapters/billing-gateway-registry.d.ts.map +1 -0
  3. package/dist/adapters/billing-gateway-registry.js +33 -0
  4. package/dist/adapters/billing-gateway-registry.js.map +1 -0
  5. package/dist/adapters/mercadopago.adapter.d.ts +44 -0
  6. package/dist/adapters/mercadopago.adapter.d.ts.map +1 -0
  7. package/dist/adapters/mercadopago.adapter.js +68 -0
  8. package/dist/adapters/mercadopago.adapter.js.map +1 -0
  9. package/dist/adapters/pagarme.adapter.d.ts +44 -0
  10. package/dist/adapters/pagarme.adapter.d.ts.map +1 -0
  11. package/dist/adapters/pagarme.adapter.js +68 -0
  12. package/dist/adapters/pagarme.adapter.js.map +1 -0
  13. package/dist/adapters/payment-gateway.adapter.d.ts +15 -0
  14. package/dist/adapters/payment-gateway.adapter.d.ts.map +1 -0
  15. package/dist/adapters/payment-gateway.adapter.js +3 -0
  16. package/dist/adapters/payment-gateway.adapter.js.map +1 -0
  17. package/dist/adapters/stripe.adapter.d.ts +44 -0
  18. package/dist/adapters/stripe.adapter.d.ts.map +1 -0
  19. package/dist/adapters/stripe.adapter.js +69 -0
  20. package/dist/adapters/stripe.adapter.js.map +1 -0
  21. package/dist/billing-contracts.controller.d.ts +22 -0
  22. package/dist/billing-contracts.controller.d.ts.map +1 -0
  23. package/dist/billing-contracts.controller.js +84 -0
  24. package/dist/billing-contracts.controller.js.map +1 -0
  25. package/dist/billing-coupons.controller.d.ts +22 -0
  26. package/dist/billing-coupons.controller.d.ts.map +1 -0
  27. package/dist/billing-coupons.controller.js +84 -0
  28. package/dist/billing-coupons.controller.js.map +1 -0
  29. package/dist/billing-dashboard.controller.d.ts +13 -0
  30. package/dist/billing-dashboard.controller.d.ts.map +1 -0
  31. package/dist/billing-dashboard.controller.js +36 -0
  32. package/dist/billing-dashboard.controller.js.map +1 -0
  33. package/dist/billing-entitlements.controller.d.ts +19 -0
  34. package/dist/billing-entitlements.controller.d.ts.map +1 -0
  35. package/dist/billing-entitlements.controller.js +62 -0
  36. package/dist/billing-entitlements.controller.js.map +1 -0
  37. package/dist/billing-gateways.controller.d.ts +8 -0
  38. package/dist/billing-gateways.controller.d.ts.map +1 -0
  39. package/dist/billing-gateways.controller.js +50 -0
  40. package/dist/billing-gateways.controller.js.map +1 -0
  41. package/dist/billing-invoices.controller.d.ts +18 -0
  42. package/dist/billing-invoices.controller.d.ts.map +1 -0
  43. package/dist/billing-invoices.controller.js +61 -0
  44. package/dist/billing-invoices.controller.js.map +1 -0
  45. package/dist/billing-offers.controller.d.ts +22 -0
  46. package/dist/billing-offers.controller.d.ts.map +1 -0
  47. package/dist/billing-offers.controller.js +84 -0
  48. package/dist/billing-offers.controller.js.map +1 -0
  49. package/dist/billing-orders.controller.d.ts +19 -0
  50. package/dist/billing-orders.controller.d.ts.map +1 -0
  51. package/dist/billing-orders.controller.js +62 -0
  52. package/dist/billing-orders.controller.js.map +1 -0
  53. package/dist/billing-payments.controller.d.ts +17 -0
  54. package/dist/billing-payments.controller.d.ts.map +1 -0
  55. package/dist/billing-payments.controller.js +51 -0
  56. package/dist/billing-payments.controller.js.map +1 -0
  57. package/dist/billing-prices.controller.d.ts +22 -0
  58. package/dist/billing-prices.controller.d.ts.map +1 -0
  59. package/dist/billing-prices.controller.js +84 -0
  60. package/dist/billing-prices.controller.js.map +1 -0
  61. package/dist/billing-products.controller.d.ts +22 -0
  62. package/dist/billing-products.controller.d.ts.map +1 -0
  63. package/dist/billing-products.controller.js +84 -0
  64. package/dist/billing-products.controller.js.map +1 -0
  65. package/dist/billing-refunds.controller.d.ts +16 -0
  66. package/dist/billing-refunds.controller.d.ts.map +1 -0
  67. package/dist/billing-refunds.controller.js +41 -0
  68. package/dist/billing-refunds.controller.js.map +1 -0
  69. package/dist/billing-subscriptions.controller.d.ts +22 -0
  70. package/dist/billing-subscriptions.controller.d.ts.map +1 -0
  71. package/dist/billing-subscriptions.controller.js +92 -0
  72. package/dist/billing-subscriptions.controller.js.map +1 -0
  73. package/dist/billing-webhooks.controller.d.ts +16 -0
  74. package/dist/billing-webhooks.controller.d.ts.map +1 -0
  75. package/dist/billing-webhooks.controller.js +41 -0
  76. package/dist/billing-webhooks.controller.js.map +1 -0
  77. package/dist/billing.module.d.ts +3 -0
  78. package/dist/billing.module.d.ts.map +1 -0
  79. package/dist/billing.module.js +61 -0
  80. package/dist/billing.module.js.map +1 -0
  81. package/dist/billing.service.d.ts +169 -0
  82. package/dist/billing.service.d.ts.map +1 -0
  83. package/dist/billing.service.js +290 -0
  84. package/dist/billing.service.js.map +1 -0
  85. package/dist/dto/create-contract.dto.d.ts +11 -0
  86. package/dist/dto/create-contract.dto.d.ts.map +1 -0
  87. package/dist/dto/create-contract.dto.js +52 -0
  88. package/dist/dto/create-contract.dto.js.map +1 -0
  89. package/dist/dto/create-coupon.dto.d.ts +12 -0
  90. package/dist/dto/create-coupon.dto.d.ts.map +1 -0
  91. package/dist/dto/create-coupon.dto.js +60 -0
  92. package/dist/dto/create-coupon.dto.js.map +1 -0
  93. package/dist/dto/create-entitlement.dto.d.ts +12 -0
  94. package/dist/dto/create-entitlement.dto.d.ts.map +1 -0
  95. package/dist/dto/create-entitlement.dto.js +54 -0
  96. package/dist/dto/create-entitlement.dto.js.map +1 -0
  97. package/dist/dto/create-offer.dto.d.ts +7 -0
  98. package/dist/dto/create-offer.dto.d.ts.map +1 -0
  99. package/dist/dto/create-offer.dto.js +35 -0
  100. package/dist/dto/create-offer.dto.js.map +1 -0
  101. package/dist/dto/create-order.dto.d.ts +12 -0
  102. package/dist/dto/create-order.dto.d.ts.map +1 -0
  103. package/dist/dto/create-order.dto.js +65 -0
  104. package/dist/dto/create-order.dto.js.map +1 -0
  105. package/dist/dto/create-price.dto.d.ts +15 -0
  106. package/dist/dto/create-price.dto.d.ts.map +1 -0
  107. package/dist/dto/create-price.dto.js +76 -0
  108. package/dist/dto/create-price.dto.js.map +1 -0
  109. package/dist/dto/create-product.dto.d.ts +9 -0
  110. package/dist/dto/create-product.dto.d.ts.map +1 -0
  111. package/dist/dto/create-product.dto.js +45 -0
  112. package/dist/dto/create-product.dto.js.map +1 -0
  113. package/dist/dto/create-subscription.dto.d.ts +14 -0
  114. package/dist/dto/create-subscription.dto.d.ts.map +1 -0
  115. package/dist/dto/create-subscription.dto.js +67 -0
  116. package/dist/dto/create-subscription.dto.js.map +1 -0
  117. package/dist/dto/update-contract.dto.d.ts +6 -0
  118. package/dist/dto/update-contract.dto.d.ts.map +1 -0
  119. package/dist/dto/update-contract.dto.js +9 -0
  120. package/dist/dto/update-contract.dto.js.map +1 -0
  121. package/dist/dto/update-coupon.dto.d.ts +6 -0
  122. package/dist/dto/update-coupon.dto.d.ts.map +1 -0
  123. package/dist/dto/update-coupon.dto.js +9 -0
  124. package/dist/dto/update-coupon.dto.js.map +1 -0
  125. package/dist/dto/update-offer.dto.d.ts +6 -0
  126. package/dist/dto/update-offer.dto.d.ts.map +1 -0
  127. package/dist/dto/update-offer.dto.js +9 -0
  128. package/dist/dto/update-offer.dto.js.map +1 -0
  129. package/dist/dto/update-order.dto.d.ts +6 -0
  130. package/dist/dto/update-order.dto.d.ts.map +1 -0
  131. package/dist/dto/update-order.dto.js +9 -0
  132. package/dist/dto/update-order.dto.js.map +1 -0
  133. package/dist/dto/update-price.dto.d.ts +6 -0
  134. package/dist/dto/update-price.dto.d.ts.map +1 -0
  135. package/dist/dto/update-price.dto.js +9 -0
  136. package/dist/dto/update-price.dto.js.map +1 -0
  137. package/dist/dto/update-product.dto.d.ts +6 -0
  138. package/dist/dto/update-product.dto.d.ts.map +1 -0
  139. package/dist/dto/update-product.dto.js +9 -0
  140. package/dist/dto/update-product.dto.js.map +1 -0
  141. package/dist/dto/update-subscription.dto.d.ts +6 -0
  142. package/dist/dto/update-subscription.dto.d.ts.map +1 -0
  143. package/dist/dto/update-subscription.dto.js +9 -0
  144. package/dist/dto/update-subscription.dto.js.map +1 -0
  145. package/dist/index.d.ts +32 -0
  146. package/dist/index.d.ts.map +1 -0
  147. package/dist/index.js +48 -0
  148. package/dist/index.js.map +1 -0
  149. package/hedhog/data/menu.yaml +284 -0
  150. package/hedhog/data/role.yaml +7 -0
  151. package/hedhog/data/route.yaml +422 -0
  152. package/hedhog/frontend/app/_lib/billing-mocks.ts.ejs +270 -0
  153. package/hedhog/frontend/app/contracts/page.tsx.ejs +562 -0
  154. package/hedhog/frontend/app/coupons/page.tsx.ejs +669 -0
  155. package/hedhog/frontend/app/entitlements/page.tsx.ejs +526 -0
  156. package/hedhog/frontend/app/gateways/page.tsx.ejs +308 -0
  157. package/hedhog/frontend/app/invoices/page.tsx.ejs +179 -0
  158. package/hedhog/frontend/app/offers/page.tsx.ejs +483 -0
  159. package/hedhog/frontend/app/orders/page.tsx.ejs +424 -0
  160. package/hedhog/frontend/app/page.tsx.ejs +186 -0
  161. package/hedhog/frontend/app/payments/page.tsx.ejs +187 -0
  162. package/hedhog/frontend/app/prices/page.tsx.ejs +704 -0
  163. package/hedhog/frontend/app/products/page.tsx.ejs +568 -0
  164. package/hedhog/frontend/app/refunds/page.tsx.ejs +174 -0
  165. package/hedhog/frontend/app/reports/page.tsx.ejs +177 -0
  166. package/hedhog/frontend/app/subscriptions/page.tsx.ejs +283 -0
  167. package/hedhog/frontend/app/webhooks/page.tsx.ejs +172 -0
  168. package/hedhog/frontend/messages/en.json +551 -0
  169. package/hedhog/frontend/messages/pt.json +563 -0
  170. package/hedhog/table/billing_contract.yaml +37 -0
  171. package/hedhog/table/billing_contract_seat.yaml +28 -0
  172. package/hedhog/table/billing_coupon.yaml +42 -0
  173. package/hedhog/table/billing_entitlement.yaml +41 -0
  174. package/hedhog/table/billing_entitlement_event.yaml +20 -0
  175. package/hedhog/table/billing_invoice.yaml +60 -0
  176. package/hedhog/table/billing_invoice_item.yaml +25 -0
  177. package/hedhog/table/billing_offer.yaml +22 -0
  178. package/hedhog/table/billing_offer_price.yaml +23 -0
  179. package/hedhog/table/billing_order.yaml +50 -0
  180. package/hedhog/table/billing_order_item.yaml +35 -0
  181. package/hedhog/table/billing_payment.yaml +66 -0
  182. package/hedhog/table/billing_payment_method.yaml +49 -0
  183. package/hedhog/table/billing_payment_provider.yaml +21 -0
  184. package/hedhog/table/billing_price.yaml +53 -0
  185. package/hedhog/table/billing_product.yaml +31 -0
  186. package/hedhog/table/billing_product_item.yaml +24 -0
  187. package/hedhog/table/billing_provider_event.yaml +31 -0
  188. package/hedhog/table/billing_refund.yaml +41 -0
  189. package/hedhog/table/billing_seat_allocation.yaml +42 -0
  190. package/hedhog/table/billing_subscription.yaml +66 -0
  191. package/hedhog/table/billing_subscription_event.yaml +20 -0
  192. package/hedhog/table/billing_subscription_item.yaml +29 -0
  193. package/package.json +37 -0
  194. package/src/adapters/billing-gateway-registry.ts +23 -0
  195. package/src/adapters/mercadopago.adapter.ts +66 -0
  196. package/src/adapters/pagarme.adapter.ts +66 -0
  197. package/src/adapters/payment-gateway.adapter.ts +14 -0
  198. package/src/adapters/stripe.adapter.ts +67 -0
  199. package/src/billing-contracts.controller.ts +46 -0
  200. package/src/billing-coupons.controller.ts +46 -0
  201. package/src/billing-dashboard.controller.ts +14 -0
  202. package/src/billing-entitlements.controller.ts +34 -0
  203. package/src/billing-gateways.controller.ts +19 -0
  204. package/src/billing-invoices.controller.ts +32 -0
  205. package/src/billing-offers.controller.ts +46 -0
  206. package/src/billing-orders.controller.ts +33 -0
  207. package/src/billing-payments.controller.ts +20 -0
  208. package/src/billing-prices.controller.ts +46 -0
  209. package/src/billing-products.controller.ts +46 -0
  210. package/src/billing-refunds.controller.ts +15 -0
  211. package/src/billing-subscriptions.controller.ts +49 -0
  212. package/src/billing-webhooks.controller.ts +15 -0
  213. package/src/billing.module.ts +48 -0
  214. package/src/billing.service.ts +391 -0
  215. package/src/dto/create-contract.dto.ts +30 -0
  216. package/src/dto/create-coupon.dto.ts +37 -0
  217. package/src/dto/create-entitlement.dto.ts +31 -0
  218. package/src/dto/create-offer.dto.ts +17 -0
  219. package/src/dto/create-order.dto.ts +42 -0
  220. package/src/dto/create-price.dto.ts +50 -0
  221. package/src/dto/create-product.dto.ts +25 -0
  222. package/src/dto/create-subscription.dto.ts +42 -0
  223. package/src/dto/update-contract.dto.ts +4 -0
  224. package/src/dto/update-coupon.dto.ts +4 -0
  225. package/src/dto/update-offer.dto.ts +4 -0
  226. package/src/dto/update-order.dto.ts +4 -0
  227. package/src/dto/update-price.dto.ts +4 -0
  228. package/src/dto/update-product.dto.ts +4 -0
  229. package/src/dto/update-subscription.dto.ts +4 -0
  230. package/src/index.ts +32 -0
  231. package/src/language/en.json +8 -0
  232. package/src/language/pt.json +8 -0
@@ -0,0 +1,41 @@
1
+ columns:
2
+ - type: pk
3
+ - name: contact_id
4
+ type: fk
5
+ references:
6
+ table: person
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: source_type
11
+ type: varchar
12
+ length: 64
13
+ - name: source_id
14
+ type: int
15
+ - name: target_type
16
+ type: varchar
17
+ length: 64
18
+ - name: target_id
19
+ type: int
20
+ - name: access_type
21
+ type: varchar
22
+ length: 120
23
+ - name: starts_at
24
+ type: datetime
25
+ isNullable: true
26
+ - name: ends_at
27
+ type: datetime
28
+ isNullable: true
29
+ - name: status
30
+ type: enum
31
+ values: [active, revoked, expired]
32
+ default: active
33
+ - type: created_at
34
+ - type: updated_at
35
+
36
+ indices:
37
+ - columns: [contact_id]
38
+ - columns: [source_type, source_id]
39
+ - columns: [target_type, target_id]
40
+ - columns: [status]
41
+ - columns: [ends_at]
@@ -0,0 +1,20 @@
1
+ columns:
2
+ - type: pk
3
+ - name: entitlement_id
4
+ type: fk
5
+ references:
6
+ table: billing_entitlement
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: event_type
11
+ type: varchar
12
+ length: 120
13
+ - name: payload
14
+ type: text
15
+ isNullable: true
16
+ - type: created_at
17
+
18
+ indices:
19
+ - columns: [entitlement_id]
20
+ - columns: [event_type]
@@ -0,0 +1,60 @@
1
+ columns:
2
+ - type: pk
3
+ - name: subscription_id
4
+ type: fk
5
+ isNullable: true
6
+ references:
7
+ table: billing_subscription
8
+ column: id
9
+ onDelete: SET NULL
10
+ onUpdate: CASCADE
11
+ - name: order_id
12
+ type: fk
13
+ isNullable: true
14
+ references:
15
+ table: billing_order
16
+ column: id
17
+ onDelete: SET NULL
18
+ onUpdate: CASCADE
19
+ - name: contact_id
20
+ type: fk
21
+ isNullable: true
22
+ references:
23
+ table: person
24
+ column: id
25
+ onDelete: SET NULL
26
+ onUpdate: CASCADE
27
+ - name: invoice_number
28
+ type: varchar
29
+ length: 64
30
+ isNullable: true
31
+ - name: status
32
+ type: enum
33
+ values: [draft, open, paid, void, uncollectible]
34
+ default: draft
35
+ - name: currency
36
+ type: char
37
+ length: 3
38
+ default: BRL
39
+ - name: subtotal_cents
40
+ type: int
41
+ default: 0
42
+ - name: total_cents
43
+ type: int
44
+ default: 0
45
+ - name: due_date
46
+ type: datetime
47
+ isNullable: true
48
+ - name: paid_at
49
+ type: datetime
50
+ isNullable: true
51
+ - type: created_at
52
+ - type: updated_at
53
+
54
+ indices:
55
+ - columns: [subscription_id]
56
+ - columns: [order_id]
57
+ - columns: [contact_id]
58
+ - columns: [invoice_number]
59
+ - columns: [status]
60
+ - columns: [due_date]
@@ -0,0 +1,25 @@
1
+ columns:
2
+ - type: pk
3
+ - name: invoice_id
4
+ type: fk
5
+ references:
6
+ table: billing_invoice
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: description
11
+ type: varchar
12
+ length: 500
13
+ - name: quantity
14
+ type: int
15
+ default: 1
16
+ - name: unit_amount_cents
17
+ type: int
18
+ default: 0
19
+ - name: total_amount_cents
20
+ type: int
21
+ default: 0
22
+ - type: created_at
23
+
24
+ indices:
25
+ - columns: [invoice_id]
@@ -0,0 +1,22 @@
1
+ columns:
2
+ - type: pk
3
+ - name: code
4
+ type: varchar
5
+ length: 64
6
+ - name: name
7
+ type: varchar
8
+ length: 255
9
+ - name: description
10
+ type: text
11
+ isNullable: true
12
+ - name: status
13
+ type: enum
14
+ values: [draft, active, archived]
15
+ default: draft
16
+ - type: created_at
17
+ - type: updated_at
18
+
19
+ indices:
20
+ - columns: [code]
21
+ isUnique: true
22
+ - columns: [status]
@@ -0,0 +1,23 @@
1
+ columns:
2
+ - type: pk
3
+ - name: offer_id
4
+ type: fk
5
+ references:
6
+ table: billing_offer
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: price_id
11
+ type: fk
12
+ references:
13
+ table: billing_price
14
+ column: id
15
+ onDelete: CASCADE
16
+ onUpdate: CASCADE
17
+ - type: created_at
18
+
19
+ indices:
20
+ - columns: [offer_id, price_id]
21
+ isUnique: true
22
+ - columns: [offer_id]
23
+ - columns: [price_id]
@@ -0,0 +1,50 @@
1
+ columns:
2
+ - type: pk
3
+ - name: contact_id
4
+ type: fk
5
+ isNullable: true
6
+ references:
7
+ table: person
8
+ column: id
9
+ onDelete: SET NULL
10
+ onUpdate: CASCADE
11
+ - name: company_contact_id
12
+ type: fk
13
+ isNullable: true
14
+ references:
15
+ table: person
16
+ column: id
17
+ onDelete: SET NULL
18
+ onUpdate: CASCADE
19
+ - name: status
20
+ type: enum
21
+ values: [draft, pending, paid, canceled, refunded]
22
+ default: draft
23
+ - name: currency
24
+ type: char
25
+ length: 3
26
+ default: BRL
27
+ - name: subtotal_cents
28
+ type: int
29
+ default: 0
30
+ - name: discount_cents
31
+ type: int
32
+ default: 0
33
+ - name: total_cents
34
+ type: int
35
+ default: 0
36
+ - name: source
37
+ type: varchar
38
+ length: 120
39
+ isNullable: true
40
+ - name: notes
41
+ type: text
42
+ isNullable: true
43
+ - type: created_at
44
+ - type: updated_at
45
+
46
+ indices:
47
+ - columns: [contact_id]
48
+ - columns: [company_contact_id]
49
+ - columns: [status]
50
+ - columns: [created_at]
@@ -0,0 +1,35 @@
1
+ columns:
2
+ - type: pk
3
+ - name: order_id
4
+ type: fk
5
+ references:
6
+ table: billing_order
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: price_id
11
+ type: fk
12
+ isNullable: true
13
+ references:
14
+ table: billing_price
15
+ column: id
16
+ onDelete: RESTRICT
17
+ onUpdate: CASCADE
18
+ - name: quantity
19
+ type: int
20
+ default: 1
21
+ - name: unit_amount_cents
22
+ type: int
23
+ default: 0
24
+ - name: total_amount_cents
25
+ type: int
26
+ default: 0
27
+ - name: description
28
+ type: varchar
29
+ length: 500
30
+ isNullable: true
31
+ - type: created_at
32
+
33
+ indices:
34
+ - columns: [order_id]
35
+ - columns: [price_id]
@@ -0,0 +1,66 @@
1
+ columns:
2
+ - type: pk
3
+ - name: invoice_id
4
+ type: fk
5
+ isNullable: true
6
+ references:
7
+ table: billing_invoice
8
+ column: id
9
+ onDelete: SET NULL
10
+ onUpdate: CASCADE
11
+ - name: order_id
12
+ type: fk
13
+ isNullable: true
14
+ references:
15
+ table: billing_order
16
+ column: id
17
+ onDelete: SET NULL
18
+ onUpdate: CASCADE
19
+ - name: contact_id
20
+ type: fk
21
+ isNullable: true
22
+ references:
23
+ table: person
24
+ column: id
25
+ onDelete: SET NULL
26
+ onUpdate: CASCADE
27
+ - name: provider
28
+ type: varchar
29
+ length: 64
30
+ isNullable: true
31
+ - name: method_type
32
+ type: enum
33
+ values: [card, pix, boleto, bank_transfer, wallet, other]
34
+ default: card
35
+ - name: status
36
+ type: enum
37
+ values: [pending, processing, paid, failed, canceled, refunded]
38
+ default: pending
39
+ - name: amount_cents
40
+ type: int
41
+ default: 0
42
+ - name: currency
43
+ type: char
44
+ length: 3
45
+ default: BRL
46
+ - name: external_transaction_id
47
+ type: varchar
48
+ length: 255
49
+ isNullable: true
50
+ - name: paid_at
51
+ type: datetime
52
+ isNullable: true
53
+ - name: raw_response
54
+ type: text
55
+ isNullable: true
56
+ - type: created_at
57
+ - type: updated_at
58
+
59
+ indices:
60
+ - columns: [invoice_id]
61
+ - columns: [order_id]
62
+ - columns: [contact_id]
63
+ - columns: [provider]
64
+ - columns: [status]
65
+ - columns: [external_transaction_id]
66
+ - columns: [paid_at]
@@ -0,0 +1,49 @@
1
+ columns:
2
+ - type: pk
3
+ - name: contact_id
4
+ type: fk
5
+ references:
6
+ table: person
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: provider
11
+ type: varchar
12
+ length: 64
13
+ - name: type
14
+ type: enum
15
+ values: [card, pix, bank_account]
16
+ default: card
17
+ - name: last_four
18
+ type: varchar
19
+ length: 4
20
+ isNullable: true
21
+ - name: brand
22
+ type: varchar
23
+ length: 64
24
+ isNullable: true
25
+ - name: expiry_month
26
+ type: int
27
+ isNullable: true
28
+ - name: expiry_year
29
+ type: int
30
+ isNullable: true
31
+ - name: is_default
32
+ type: boolean
33
+ default: false
34
+ - name: gateway_method_id
35
+ type: varchar
36
+ length: 255
37
+ isNullable: true
38
+ - name: status
39
+ type: enum
40
+ values: [active, expired, removed]
41
+ default: active
42
+ - type: created_at
43
+ - type: updated_at
44
+
45
+ indices:
46
+ - columns: [contact_id]
47
+ - columns: [provider]
48
+ - columns: [status]
49
+ - columns: [is_default]
@@ -0,0 +1,21 @@
1
+ columns:
2
+ - type: pk
3
+ - name: slug
4
+ type: varchar
5
+ length: 64
6
+ - name: name
7
+ type: varchar
8
+ length: 180
9
+ - name: is_active
10
+ type: boolean
11
+ default: true
12
+ - name: config_json
13
+ type: text
14
+ isNullable: true
15
+ - type: created_at
16
+ - type: updated_at
17
+
18
+ indices:
19
+ - columns: [slug]
20
+ isUnique: true
21
+ - columns: [is_active]
@@ -0,0 +1,53 @@
1
+ columns:
2
+ - type: pk
3
+ - name: product_id
4
+ type: fk
5
+ references:
6
+ table: billing_product
7
+ column: id
8
+ onDelete: RESTRICT
9
+ onUpdate: CASCADE
10
+ - name: name
11
+ type: varchar
12
+ length: 255
13
+ - name: billing_type
14
+ type: enum
15
+ values: [one_time, recurring]
16
+ default: recurring
17
+ - name: currency
18
+ type: char
19
+ length: 3
20
+ default: BRL
21
+ - name: amount_cents
22
+ type: int
23
+ default: 0
24
+ - name: interval_unit
25
+ type: enum
26
+ values: [day, week, month, year]
27
+ isNullable: true
28
+ - name: interval_count
29
+ type: int
30
+ default: 1
31
+ - name: trial_days
32
+ type: int
33
+ default: 0
34
+ - name: setup_fee_cents
35
+ type: int
36
+ default: 0
37
+ - name: is_active
38
+ type: boolean
39
+ default: true
40
+ - name: starts_at
41
+ type: datetime
42
+ isNullable: true
43
+ - name: ends_at
44
+ type: datetime
45
+ isNullable: true
46
+ - type: created_at
47
+ - type: updated_at
48
+
49
+ indices:
50
+ - columns: [product_id]
51
+ - columns: [billing_type]
52
+ - columns: [is_active]
53
+ - columns: [currency]
@@ -0,0 +1,31 @@
1
+ columns:
2
+ - type: pk
3
+ - name: code
4
+ type: varchar
5
+ length: 64
6
+ isNullable: true
7
+ - name: name
8
+ type: varchar
9
+ length: 255
10
+ - name: description
11
+ type: text
12
+ isNullable: true
13
+ - name: product_type
14
+ type: enum
15
+ values: [saas, physical, service, addon]
16
+ default: saas
17
+ - name: category
18
+ type: varchar
19
+ length: 120
20
+ isNullable: true
21
+ - name: is_active
22
+ type: boolean
23
+ default: true
24
+ - type: created_at
25
+ - type: updated_at
26
+
27
+ indices:
28
+ - columns: [code]
29
+ isUnique: true
30
+ - columns: [product_type]
31
+ - columns: [is_active]
@@ -0,0 +1,24 @@
1
+ columns:
2
+ - type: pk
3
+ - name: product_id
4
+ type: fk
5
+ references:
6
+ table: billing_product
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: name
11
+ type: varchar
12
+ length: 255
13
+ - name: description
14
+ type: text
15
+ isNullable: true
16
+ - name: is_active
17
+ type: boolean
18
+ default: true
19
+ - type: created_at
20
+ - type: updated_at
21
+
22
+ indices:
23
+ - columns: [product_id]
24
+ - columns: [is_active]
@@ -0,0 +1,31 @@
1
+ columns:
2
+ - type: pk
3
+ - name: provider_id
4
+ type: fk
5
+ references:
6
+ table: billing_payment_provider
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: event_type
11
+ type: varchar
12
+ length: 120
13
+ - name: external_event_id
14
+ type: varchar
15
+ length: 255
16
+ isNullable: true
17
+ - name: payload
18
+ type: text
19
+ - name: processed
20
+ type: boolean
21
+ default: false
22
+ - name: processed_at
23
+ type: datetime
24
+ isNullable: true
25
+ - type: created_at
26
+
27
+ indices:
28
+ - columns: [provider_id]
29
+ - columns: [event_type]
30
+ - columns: [processed]
31
+ - columns: [external_event_id]
@@ -0,0 +1,41 @@
1
+ columns:
2
+ - type: pk
3
+ - name: payment_id
4
+ type: fk
5
+ references:
6
+ table: billing_payment
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: contact_id
11
+ type: fk
12
+ isNullable: true
13
+ references:
14
+ table: person
15
+ column: id
16
+ onDelete: SET NULL
17
+ onUpdate: CASCADE
18
+ - name: amount_cents
19
+ type: int
20
+ default: 0
21
+ - name: reason
22
+ type: text
23
+ isNullable: true
24
+ - name: status
25
+ type: enum
26
+ values: [pending, completed, failed]
27
+ default: pending
28
+ - name: external_refund_id
29
+ type: varchar
30
+ length: 255
31
+ isNullable: true
32
+ - name: completed_at
33
+ type: datetime
34
+ isNullable: true
35
+ - type: created_at
36
+ - type: updated_at
37
+
38
+ indices:
39
+ - columns: [payment_id]
40
+ - columns: [contact_id]
41
+ - columns: [status]
@@ -0,0 +1,42 @@
1
+ columns:
2
+ - type: pk
3
+ - name: contract_id
4
+ type: fk
5
+ references:
6
+ table: billing_contract
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: seat_id
11
+ type: fk
12
+ references:
13
+ table: billing_contract_seat
14
+ column: id
15
+ onDelete: CASCADE
16
+ onUpdate: CASCADE
17
+ - name: person_id
18
+ type: fk
19
+ references:
20
+ table: person
21
+ column: id
22
+ onDelete: RESTRICT
23
+ onUpdate: CASCADE
24
+ - name: allocated_at
25
+ type: datetime
26
+ - name: released_at
27
+ type: datetime
28
+ isNullable: true
29
+ - name: status
30
+ type: enum
31
+ values: [active, released]
32
+ default: active
33
+ - type: created_at
34
+ - type: updated_at
35
+
36
+ indices:
37
+ - columns: [contract_id]
38
+ - columns: [seat_id]
39
+ - columns: [person_id]
40
+ - columns: [status]
41
+ - columns: [contract_id, person_id]
42
+ isUnique: true