From 61079c817128bfd4f6b78a810e3739f72b61b012 Mon Sep 17 00:00:00 2001 From: kbe Date: Thu, 4 Sep 2025 02:18:50 +0200 Subject: [PATCH] docs: Add comprehensive invoice system implementation guide MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Document various invoice generation approaches (PDF, HTML-to-PDF, Stripe) - Compare Stripe Payment Intents vs Invoicing vs Checkout Sessions - Provide complete code implementation with models, controllers, services - Include phase-by-phase implementation strategy for current use case - Add testing, security, and deployment guidelines - Recommend hybrid approach: keep current checkout + post-payment invoices 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- app/assets/stylesheets/components/footer.css | 82 --- app/views/components/_header.html.erb | 23 +- app/views/events/index.html.erb | 1 + config/initializers/assets.rb | 3 + docs/invoice-system-implementation.md | 572 +++++++++++++++++++ tailwind.config.js | 114 +--- tmp/pids/.keep | 0 tmp/storage/.keep | 0 8 files changed, 590 insertions(+), 205 deletions(-) delete mode 100755 app/assets/stylesheets/components/footer.css create mode 100644 docs/invoice-system-implementation.md mode change 100755 => 100644 tmp/pids/.keep mode change 100755 => 100644 tmp/storage/.keep diff --git a/app/assets/stylesheets/components/footer.css b/app/assets/stylesheets/components/footer.css deleted file mode 100755 index 7cb9f75..0000000 --- a/app/assets/stylesheets/components/footer.css +++ /dev/null @@ -1,82 +0,0 @@ - -.footer { - background: var(--color-neutral-800); - color: var(--color-neutral-300); - padding: var(--space-8) 0 var(--space-4); -} - -.footer-content { - display: grid; - gap: var(--space-6); - margin-bottom: var(--space-6); -} - -@media (min-width: 768px) { - .footer-content { - grid-template-columns: repeat(2, 1fr); - } -} - -@media (min-width: 1024px) { - .footer-content { - grid-template-columns: repeat(4, 1fr); - } -} - -.footer-section h3 { - font-family: var(--font-display); - font-weight: 700; - margin-bottom: var(--space-3); - color: white; - font-size: var(--text-lg); -} - -.footer-links { - list-style: none; -} - -.footer-links li { - margin-bottom: var(--space-2); -} - -.footer-links a { - color: var(--color-neutral-400); - text-decoration: none; - transition: color var(--duration-normal); - font-size: var(--text-sm); -} - -.footer-links a:hover { - color: var(--color-accent-400); -} - -.footer-bottom { - border-top: 1px solid var(--color-neutral-700); - padding-top: var(--space-4); - text-align: center; - color: var(--color-neutral-400); - font-size: var(--text-sm); -} - -@media (max-width: 768px) { - .hero { - padding: var(--space-8) 0 var(--space-6); - } - - .cta-group { - flex-direction: column; - align-items: center; - } - - .hero-stats { - gap: var(--space-4); - } - - .features-grid { - grid-template-columns: 1fr; - } - - .stats-grid { - grid-template-columns: repeat(2, 1fr); - } -} \ No newline at end of file diff --git a/app/views/components/_header.html.erb b/app/views/components/_header.html.erb index 4ff2997..a6a3c23 100755 --- a/app/views/components/_header.html.erb +++ b/app/views/components/_header.html.erb @@ -1,18 +1,18 @@