628ed34d73
- Add stripePaymentIntentId and stripeRefundId to Invoice interface (types) - Include both fields in the invoice list endpoint select (api) - Show Refund button only when: status=paid, stripePaymentIntentId exists, stripeRefundId is null, and current user is manager - Render "Refunded" badge on already-refunded invoices - Full/partial refund dialog with amount input for partial Co-Authored-By: Paperclip <noreply@paperclip.ing>