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.
28 lines
1.0 KiB
SQL
28 lines
1.0 KiB
SQL
CREATE TABLE IF NOT EXISTS companies (
|
|
id SERIAL PRIMARY KEY,
|
|
account_id INTEGER NOT NULL,
|
|
name VARCHAR(255) NOT NULL,
|
|
description TEXT DEFAULT '',
|
|
website_url VARCHAR(512),
|
|
favicon_url VARCHAR(512),
|
|
domain VARCHAR(255),
|
|
last_activity_at TIMESTAMPTZ,
|
|
additional_attributes JSONB DEFAULT '{}',
|
|
custom_attributes JSONB DEFAULT '{}',
|
|
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
updated_at TIMESTAMPTZ DEFAULT NOW()
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_companies_account_id ON companies(account_id);
|
|
CREATE INDEX IF NOT EXISTS idx_companies_name ON companies(account_id, name);
|
|
CREATE INDEX IF NOT EXISTS idx_companies_domain ON companies(account_id, domain);
|
|
|
|
CREATE TABLE IF NOT EXISTS company_contacts (
|
|
company_id INTEGER NOT NULL,
|
|
contact_id INTEGER NOT NULL,
|
|
PRIMARY KEY (company_id, contact_id)
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_company_contacts_company_id ON company_contacts(company_id);
|
|
CREATE INDEX IF NOT EXISTS idx_company_contacts_contact_id ON company_contacts(contact_id);
|