refactor: consolidate database structure and move injector to engine

Database Structure Cleanup:
- Move all SQL files from ./db/ to ./internal/db/
- Update sqlc.yaml to use new paths (preserving schema+setup.sql hack)
- Consolidate database-related code in single directory
- Remove empty ./db/ directory

Injector Migration:
- Move injector.go from content package to engine package
- Update ContentClient interface to return map instead of slice for GetBulkContent
- Update database client implementation to match interface
- Remove injector dependency from enhancer (stub implementation)

Demo-Site Consolidation:
- Move demo-site to test-sites/demo-site for better organization
- Update build scripts to use new demo-site location
- Maintain all functionality while improving project structure

This continues the unified architecture consolidation by moving core content
processing logic to the engine and organizing related files properly.
This commit is contained in:
2025-09-16 15:39:25 +02:00
parent 27179dc943
commit d0ac3088b4
22 changed files with 4156 additions and 30 deletions

View File

@@ -0,0 +1,254 @@
/* Reset and Base Styles */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
line-height: 1.6;
color: #333;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
/* Navigation */
.navbar {
background: #fff;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
position: fixed;
top: 0;
width: 100%;
z-index: 1000;
}
.navbar .container {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 20px;
}
.logo {
color: #2563eb;
font-size: 1.5rem;
font-weight: bold;
}
.nav-links {
display: flex;
list-style: none;
gap: 2rem;
}
.nav-links a {
text-decoration: none;
color: #333;
font-weight: 500;
transition: color 0.3s;
}
.nav-links a:hover {
color: #2563eb;
}
.auth-controls {
display: flex;
gap: 1rem;
align-items: center;
}
/* Buttons */
.btn-primary, .btn-secondary {
padding: 0.75rem 1.5rem;
border: none;
border-radius: 6px;
font-weight: 500;
text-decoration: none;
cursor: pointer;
transition: all 0.3s;
display: inline-block;
font-size: 0.9rem;
}
.btn-primary {
background: #2563eb;
color: white;
}
.btn-primary:hover {
background: #1d4ed8;
}
.btn-secondary {
background: #f3f4f6;
color: #374151;
border: 1px solid #d1d5db;
}
.btn-secondary:hover {
background: #e5e7eb;
}
/* Hero Section */
.hero {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 8rem 0 4rem;
text-align: center;
}
.hero h1 {
font-size: 3rem;
margin-bottom: 1rem;
font-weight: 700;
}
.hero .lead {
font-size: 1.25rem;
margin-bottom: 2rem;
opacity: 0.9;
max-width: 600px;
margin-left: auto;
margin-right: auto;
}
/* Services Section */
.services {
padding: 4rem 0;
background: #f9fafb;
}
.services h2 {
text-align: center;
font-size: 2.5rem;
margin-bottom: 1rem;
color: #1f2937;
}
.section-subtitle {
text-align: center;
font-size: 1.125rem;
color: #6b7280;
margin-bottom: 3rem;
}
.services-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2rem;
margin-top: 3rem;
}
.service-card {
background: white;
padding: 2rem;
border-radius: 12px;
box-shadow: 0 4px 6px rgba(0,0,0,0.05);
transition: transform 0.3s, box-shadow 0.3s;
}
.service-card:hover {
transform: translateY(-2px);
box-shadow: 0 8px 25px rgba(0,0,0,0.1);
}
.service-card h3 {
color: #2563eb;
margin-bottom: 1rem;
font-size: 1.5rem;
}
/* Testimonial Section */
.testimonial {
padding: 4rem 0;
background: #2563eb;
color: white;
text-align: center;
}
.testimonial blockquote {
max-width: 800px;
margin: 0 auto;
}
.testimonial p {
font-size: 1.5rem;
font-style: italic;
margin-bottom: 1rem;
}
.testimonial cite {
font-size: 1rem;
opacity: 0.8;
font-style: normal;
}
/* CTA Section */
.cta {
padding: 4rem 0;
text-align: center;
background: white;
}
.cta h2 {
font-size: 2.5rem;
margin-bottom: 1rem;
color: #1f2937;
}
.cta p {
font-size: 1.125rem;
color: #6b7280;
margin-bottom: 2rem;
max-width: 600px;
margin-left: auto;
margin-right: auto;
}
/* Footer */
.footer {
background: #1f2937;
color: white;
padding: 2rem 0;
text-align: center;
}
.footer p {
margin-bottom: 0.5rem;
opacity: 0.8;
}
/* Responsive Design */
@media (max-width: 768px) {
.navbar .container {
flex-direction: column;
gap: 1rem;
}
.nav-links {
gap: 1rem;
}
.auth-controls {
flex-direction: column;
gap: 0.5rem;
}
.hero h1 {
font-size: 2rem;
}
.hero .lead {
font-size: 1.125rem;
}
.services-grid {
grid-template-columns: 1fr;
}
}