Major changes: - Replace Payload CMS with Tina CMS (self-hosted) - Add Astro DB for consent logging (PDPA compliant) - Update Tailwind v3 to v4 (@tailwindcss/vite plugin) - Add astro-tina-starter template - Rewrite consent template for Astro (ConsentBanner.astro, Astro DB, Nano Stores) - Add install-tina-backend.sh for self-hosted Tina per customer - Rename convert-astro.sh to migrate-tina.sh - Add AGENTS.md template for generated websites - Delete all Payload/Next.js files Technical updates: - Astro DB using defineDb with eq operators for queries - Tailwind v4 with @theme block - Tina CMS local development mode - Proper Astro API routes for consent Research-verified with official documentation (April 2026)
22 lines
598 B
TypeScript
22 lines
598 B
TypeScript
import { defineDb, defineTable, column } from 'astro:db';
|
|
|
|
const ConsentLog = defineTable({
|
|
columns: {
|
|
id: column.number({ primaryKey: true }),
|
|
action: column.text(),
|
|
purpose: column.text(),
|
|
analytics: column.boolean({ default: false }),
|
|
marketing: column.boolean({ default: false }),
|
|
functional: column.boolean({ default: false }),
|
|
userAgent: column.text({ optional: true }),
|
|
ip: column.text({ optional: true }),
|
|
timestamp: column.date(),
|
|
sessionId: column.text({ optional: true }),
|
|
},
|
|
});
|
|
|
|
export default defineDb({
|
|
tables: {
|
|
ConsentLog,
|
|
},
|
|
}); |