feat: Add complete PDPA compliance pages

- Admin dashboard (/admin/consent-logs) with password auth
- Consent API (/api/consent) with SQLite + IP hashing
- Privacy Policy (Thai) - PDPA Section 36 compliant
- Terms & Conditions (Thai) - 9 standard clauses
- .env.example template with Umami placeholder

All pages preserve current design system.
This commit is contained in:
Kunthawat
2026-03-10 21:28:23 +07:00
parent e98b9f2bff
commit b2e427791b
3282 changed files with 302503 additions and 435 deletions

View File

@@ -0,0 +1,2 @@
"use strict";
//# sourceMappingURL=index.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}

View File

@@ -0,0 +1,9 @@
import type { Knex as KnexType } from 'knex';
import type { InferInsertModel, InferSelectModel, Table } from "../table.cjs";
declare module 'knex/types/tables.ts' {
type Knexify<T extends Table> = KnexType.CompositeTableType<InferSelectModel<T, {
dbColumnNames: true;
}>, InferInsertModel<T, {
dbColumnNames: true;
}>> & {};
}

View File

@@ -0,0 +1,9 @@
import type { Knex as KnexType } from 'knex';
import type { InferInsertModel, InferSelectModel, Table } from "../table.js";
declare module 'knex/types/tables.ts' {
type Knexify<T extends Table> = KnexType.CompositeTableType<InferSelectModel<T, {
dbColumnNames: true;
}>, InferInsertModel<T, {
dbColumnNames: true;
}>> & {};
}

View File

@@ -0,0 +1 @@
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}