François-Xavier Talbot
eeed4e572d
Credit subscriptions ( #4575 )
...
* Implement subscription crediting
* chore: query cache, clippy, fmt
* Improve code, improve query for next open charge
* chore: query cache, clippy, fmt
* Move server ID copy button up
* Node + region crediting
* Make it less ugly
* chore: query cache, clippy, fmt
* Bugfixes
* Fix lint
* Adjust migration
* Adjust migration
* Remove billing change
* Move DEFAULT_CREDIT_EMAIL_MESSAGE to utils.ts
* Lint
* Merge
* bump clickhouse, disable validation
* tombi fmt
* Update cargo lock
2025-10-20 17:35:44 +00:00
François-Xavier Talbot
5db5bf4c4c
Changes to handling of refunds in Anrok ( #4556 )
...
* Use negations, track transaction version/accounting time, use original charge accounting time in refunds
* query cache
* chore: query cache, clippy, fmt
* Fix tax drift calculation
* Fix migration
* Increase update_tax_transactions rate
2025-10-17 15:57:36 +00:00
François-Xavier Talbot
9589e23118
Link customer ID to Anrok transaction ( #4509 )
...
* Mark transactions with unresolvable addresses as unresolved
* Add customer_name + customer_id to anrok transactions
* Increase rate of Anrok syn
* Remove timer from update_tax_transactions
* chore: query cache, clippy, fmt
2025-10-06 16:06:57 +00:00
François-Xavier Talbot
beb1bdb31f
Skip synchronizing transactions to Anrok if missing payment intent ID ( #4446 )
...
* Skip succeeded txns with no payment platform ID
* chore: query cache, clippy, fmt
2025-09-30 14:36:41 +00:00
François-Xavier Talbot
54747aa628
Tweaks and fixes to background tasks ( #4447 )
...
* adjustments
* chore: query cache, clippy, fmt
2025-09-30 11:43:59 +00:00
François-Xavier Talbot
14af3d0763
Billing fixes ( #4422 )
...
* Only update the PaymentMethod ID if not using placeholder ID
* comment
* Create Anrok transactions for all charges
* Fix comment
* Prefer using payment method's address rather than customer address
* chore: query cache, clippy, fmt
2025-09-26 15:39:47 +00:00
François-Xavier Talbot
4228a193e9
Charge tax on products ( #4361 )
...
* Initial Anrok integration
* Query cache, fmt, clippy
* Fmt
* Use payment intent function in edit_subscription
* Attach Anrok client, use payments in index_billing
* Integrate Anrok with refunds
* Bug fixes
* More bugfixes
* Fix resubscriptions
* Medal promotion bugfixes
* Use stripe metadata constants everywhere
* Pre-fill values in products_tax_identifiers
* Cleanup billing route module
* Cleanup
* Email notification for tax charge
* Don't charge tax on users which haven't been notified of tax change
* Fix taxnotification.amount templates
* Update .env.docker-compose
* Update .env.local
* Clippy
* Fmt
* Query cache
* Periodically update tax amount on upcoming charges
* Fix queries
* Skip indexing tax amount on charges if no charges to process
* chore: query cache, clippy, fmt
* Fix a lot of things
* Remove test code
* chore: query cache, clippy, fmt
* Fix money formatting
* Fix conflicts
* Extra documentation, handle tax association properly
* Track loss in tax drift
* chore: query cache, clippy, fmt
* Add subscription.id variable
* chore: query cache, clippy, fmt
* chore: query cache, clippy, fmt
2025-09-25 11:29:29 +00:00
François-Xavier Talbot
9497ba70a4
Offers, redemption, preview subscriptions ( #4121 )
...
* Initial db migration/impl, guarded partner routes
* Add guard to /redeem
* Add `public` column to products prices, only expose public prices
* Query cache
* Add partner subscription type
* 5 days subscription interval, metadata
* Create server on redeem
* Query cache
* Fix race condition
* Unprovision Medal subscriptions
* Consider due expiring charge as unprovisionable
* Query cache
* Use a queue
* Promote to full subscription, fmt + clippy
* Patch expiring charge on promotion, comments
* Additional comments
* Add `tags` field to Archon /create request
* Address review comments
* Query cache
* Final fixes to edit_subscription
* Appease clippy
* fmt
2025-08-11 21:40:58 +00:00
Emma Alexia
bcf46d440b
Count failed payments as "open" charges ( #4013 )
...
This allows people to cancel failed payments, currently it fails with error "There is no open charge for this subscription"
2025-07-19 14:33:37 +00:00
Emma Alexia
dc0d923cee
Automatically cancel servers with failed payments older than 30d ( #3695 )
2025-05-25 19:36:11 +00:00
Josiah Glosson
4e4a7be7ef
Commonize and distinguish a lot of struct names in labrinth::database::models ( #3691 )
2025-05-24 09:38:43 +00:00
Josiah Glosson
9e527ff141
Labrinth ID cleanup ( #3681 )
...
* Put all ID types in the labrinth::models::ids, and reduce code duplication with them
* Rewrite labrinth::database::models::ids and rename most DB interface ID structs to be prefixed with DB
* Run sqlx prepare
---------
Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com >
2025-05-22 08:34:36 +00:00
Jai A
13f2961e43
run migrate
2025-04-03 17:47:30 -07:00
Jai A
69b70d70a8
Remove lock, fix billing job
2025-04-03 16:14:27 -07:00
Jai A
d0d0dcf09f
Fix billing setup
2025-04-03 15:44:53 -07:00
Jai Agrawal
31723a2d3c
Fix prorations not updating open charge ( #3265 )
2025-02-14 22:53:45 -08:00
Geometrically
2987f507fe
Refunds + Upgrading/Downgrading plans ( #2983 )
...
* Refunds + Upgrading/Downgrading plans
* Servers list route
* Finish, lint
* add GAM fee to payouts
* Sync payment intent id with stripe
* fix lint, update migrations
* Remove tauri generated files
* Register refund route
* fix refund bugs
2024-12-06 19:37:17 -08:00
Jai A
8dd955563e
Fix clippy errors + lint, use turbo CI
2024-10-18 16:07:35 -07:00
Jai A
e3a3379615
move to monorepo dir
2024-10-16 14:11:42 -07:00