Restructure the monorepo into clear top-level directories: - backend/: Go module root (cmd, internal, pkg, configs, migrations, docs/swagger, scripts, tests, go.mod, Makefile, .air.toml) - deploy/: Docker (Dockerfile, docker-compose*), quickstart, fluentd - docs/: project documentation + reports/ (moved from repo root) - AGENTS.md: new AI coding-agent guide at repo root Update all references to the new layout: - Dockerfile: COPY backend/go.mod, COPY backend/ (context = repo root) - docker-compose files: context ../.., dockerfile deploy/docker/Dockerfile, env_file ../../.env, volume mounts ../../backend:/app - deploy/quickstart/compose.yaml: dockerfile deploy/docker/Dockerfile - CI: working-directory: backend for go commands, file deploy/docker/Dockerfile, coverage path backend/coverage.out, health_check backend/scripts/ - backend/Makefile: docker target uses -f ../deploy/docker/Dockerfile ../ - README: architecture tree, quickstart, config paths updated Move root stray scripts (rename_models.*, run_m11_tests.sh, verify_build.sh, gorm_bool_main.go) to backend/scripts/legacy/. All moves via git mv to preserve history. Build, vet, SQLite tests, and docker compose config verified.
29 lines
1.3 KiB
SQL
29 lines
1.3 KiB
SQL
CREATE TABLE IF NOT EXISTS webhook_subscriptions (
|
|
id SERIAL PRIMARY KEY,
|
|
account_id INTEGER NOT NULL,
|
|
inbox_id INTEGER,
|
|
name VARCHAR(255),
|
|
url VARCHAR(2048) NOT NULL,
|
|
events JSONB NOT NULL DEFAULT '[]',
|
|
secret VARCHAR(128) NOT NULL,
|
|
webhook_type INTEGER DEFAULT 0,
|
|
active BOOLEAN DEFAULT TRUE,
|
|
verified_at TIMESTAMP WITH TIME ZONE,
|
|
last_delivery_status VARCHAR(50),
|
|
last_delivery_at TIMESTAMP WITH TIME ZONE,
|
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
|
|
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
|
|
deleted_at TIMESTAMP WITH TIME ZONE
|
|
);
|
|
|
|
ALTER TABLE webhook_subscriptions
|
|
ADD COLUMN IF NOT EXISTS inbox_id INTEGER,
|
|
ADD COLUMN IF NOT EXISTS name VARCHAR(255),
|
|
ADD COLUMN IF NOT EXISTS webhook_type INTEGER DEFAULT 0;
|
|
|
|
UPDATE webhook_subscriptions SET active = TRUE WHERE active IS NULL;
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_webhook_subscriptions_account_id ON webhook_subscriptions(account_id) WHERE deleted_at IS NULL;
|
|
CREATE INDEX IF NOT EXISTS idx_webhook_subscriptions_inbox_id ON webhook_subscriptions(inbox_id) WHERE deleted_at IS NULL;
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_webhook_subscriptions_account_url ON webhook_subscriptions(account_id, url) WHERE deleted_at IS NULL AND active = TRUE;
|