Files
publisher-dashboard/db/schema.sql
igm b2fba6e150 Add test infrastructure with coverage and DB test skipping
- Create @reviq/test-helpers package with shared test utilities
- Add describeE2E helper that auto-prefixes test names with [e2e]
- Support SKIP_DB_TESTS=1 to skip database-dependent tests
- Add unix socket support for TEST_DATABASE_URL
- Add root commands: test:unit, test:all, test:cov, test:unit:cov
- Configure bunfig.toml to exclude dist/ from coverage reports
- Clean up tsconfig.json files to remove redundant settings

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 13:03:41 +08:00

1097 lines
25 KiB
SQL

\restrict 7omiXDURqmmr2m2jWDDMoltRzeUAT80fRWiPifpD7IpQGCLgxQNBFsA5uBgakPg
-- Dumped from database version 17.7
-- Dumped by pg_dump version 17.7
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET transaction_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;
--
-- Name: org_role; Type: TYPE; Schema: public; Owner: -
--
CREATE TYPE public.org_role AS ENUM (
'owner',
'admin',
'member'
);
--
-- Name: passkey_device_type; Type: TYPE; Schema: public; Owner: -
--
CREATE TYPE public.passkey_device_type AS ENUM (
'singleDevice',
'multiDevice'
);
SET default_tablespace = '';
SET default_table_access_method = heap;
--
-- Name: api_tokens; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.api_tokens (
id bigint NOT NULL,
user_id integer NOT NULL,
name text NOT NULL,
token_hash text NOT NULL,
last_used_at timestamp with time zone,
expires_at timestamp with time zone NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL
);
--
-- Name: api_tokens_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.api_tokens_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: api_tokens_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.api_tokens_id_seq OWNED BY public.api_tokens.id;
--
-- Name: email_verifications; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.email_verifications (
id bigint NOT NULL,
user_id integer NOT NULL,
token text NOT NULL,
expires_at timestamp with time zone NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL
);
--
-- Name: email_verifications_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.email_verifications_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: email_verifications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.email_verifications_id_seq OWNED BY public.email_verifications.id;
--
-- Name: login_requests; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.login_requests (
id bigint NOT NULL,
user_id integer NOT NULL,
email text NOT NULL,
token text NOT NULL,
device_fingerprint text,
ip_address text,
city text,
region text,
country text,
user_agent text,
completed_at timestamp with time zone,
expires_at timestamp with time zone NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL
);
--
-- Name: login_requests_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.login_requests_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: login_requests_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.login_requests_id_seq OWNED BY public.login_requests.id;
--
-- Name: org_invites; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.org_invites (
id integer NOT NULL,
org_id integer NOT NULL,
email text NOT NULL,
role public.org_role DEFAULT 'member'::public.org_role NOT NULL,
invited_by integer NOT NULL,
token text NOT NULL,
expires_at timestamp with time zone NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL
);
--
-- Name: org_invites_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.org_invites_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: org_invites_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.org_invites_id_seq OWNED BY public.org_invites.id;
--
-- Name: org_members; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.org_members (
id integer NOT NULL,
org_id integer NOT NULL,
user_id integer NOT NULL,
role public.org_role DEFAULT 'member'::public.org_role NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL
);
--
-- Name: org_members_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.org_members_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: org_members_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.org_members_id_seq OWNED BY public.org_members.id;
--
-- Name: org_sites; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.org_sites (
id integer NOT NULL,
org_id integer NOT NULL,
domain text NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL
);
--
-- Name: org_sites_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.org_sites_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: org_sites_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.org_sites_id_seq OWNED BY public.org_sites.id;
--
-- Name: orgs; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.orgs (
id integer NOT NULL,
slug text NOT NULL,
display_name text NOT NULL,
logo_url text,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL
);
--
-- Name: orgs_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.orgs_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: orgs_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.orgs_id_seq OWNED BY public.orgs.id;
--
-- Name: passkeys; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.passkeys (
id bigint NOT NULL,
user_id integer NOT NULL,
credential_id bytea NOT NULL,
public_key bytea NOT NULL,
webauthn_user_id text NOT NULL,
counter bigint DEFAULT 0 NOT NULL,
device_type public.passkey_device_type NOT NULL,
backup_eligible boolean NOT NULL,
backup_status boolean NOT NULL,
transports jsonb,
rpid text NOT NULL,
name text NOT NULL,
last_used_at timestamp with time zone,
created_at timestamp with time zone DEFAULT now() NOT NULL
);
--
-- Name: passkeys_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.passkeys_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: passkeys_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.passkeys_id_seq OWNED BY public.passkeys.id;
--
-- Name: password_resets; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.password_resets (
id bigint NOT NULL,
user_id integer NOT NULL,
token text NOT NULL,
expires_at timestamp with time zone NOT NULL,
used_at timestamp with time zone,
created_at timestamp with time zone DEFAULT now() NOT NULL
);
--
-- Name: password_resets_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.password_resets_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: password_resets_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.password_resets_id_seq OWNED BY public.password_resets.id;
--
-- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.schema_migrations (
version character varying NOT NULL
);
--
-- Name: sessions; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.sessions (
id bigint NOT NULL,
user_id integer NOT NULL,
device_id bigint,
token_hash text NOT NULL,
trusted_mode boolean NOT NULL,
ip_address text,
city text,
region text,
country text,
user_agent text,
expires_at timestamp with time zone NOT NULL,
revoked_at timestamp with time zone,
created_at timestamp with time zone DEFAULT now() NOT NULL
);
--
-- Name: sessions_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.sessions_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: sessions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.sessions_id_seq OWNED BY public.sessions.id;
--
-- Name: user_devices; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.user_devices (
id bigint NOT NULL,
user_id integer NOT NULL,
device_fingerprint text NOT NULL,
name text,
is_trusted boolean DEFAULT false NOT NULL,
user_agent text NOT NULL,
ip_address text,
city text,
region text,
country text,
last_used_at timestamp with time zone DEFAULT now() NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL
);
--
-- Name: user_devices_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.user_devices_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: user_devices_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.user_devices_id_seq OWNED BY public.user_devices.id;
--
-- Name: users; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.users (
id integer NOT NULL,
email text NOT NULL,
email_verified_at timestamp with time zone,
full_name text,
display_name text,
phone_number text,
avatar_url text,
password_hash text,
require_passkey boolean DEFAULT false NOT NULL,
is_superuser boolean DEFAULT false NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL
);
--
-- Name: users_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.users_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: users_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.users_id_seq OWNED BY public.users.id;
--
-- Name: webauthn_challenges; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.webauthn_challenges (
id bigint NOT NULL,
options jsonb NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL
);
--
-- Name: webauthn_challenges_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.webauthn_challenges_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: webauthn_challenges_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.webauthn_challenges_id_seq OWNED BY public.webauthn_challenges.id;
--
-- Name: api_tokens id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.api_tokens ALTER COLUMN id SET DEFAULT nextval('public.api_tokens_id_seq'::regclass);
--
-- Name: email_verifications id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.email_verifications ALTER COLUMN id SET DEFAULT nextval('public.email_verifications_id_seq'::regclass);
--
-- Name: login_requests id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.login_requests ALTER COLUMN id SET DEFAULT nextval('public.login_requests_id_seq'::regclass);
--
-- Name: org_invites id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.org_invites ALTER COLUMN id SET DEFAULT nextval('public.org_invites_id_seq'::regclass);
--
-- Name: org_members id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.org_members ALTER COLUMN id SET DEFAULT nextval('public.org_members_id_seq'::regclass);
--
-- Name: org_sites id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.org_sites ALTER COLUMN id SET DEFAULT nextval('public.org_sites_id_seq'::regclass);
--
-- Name: orgs id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.orgs ALTER COLUMN id SET DEFAULT nextval('public.orgs_id_seq'::regclass);
--
-- Name: passkeys id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.passkeys ALTER COLUMN id SET DEFAULT nextval('public.passkeys_id_seq'::regclass);
--
-- Name: password_resets id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.password_resets ALTER COLUMN id SET DEFAULT nextval('public.password_resets_id_seq'::regclass);
--
-- Name: sessions id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.sessions ALTER COLUMN id SET DEFAULT nextval('public.sessions_id_seq'::regclass);
--
-- Name: user_devices id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.user_devices ALTER COLUMN id SET DEFAULT nextval('public.user_devices_id_seq'::regclass);
--
-- Name: users id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.users ALTER COLUMN id SET DEFAULT nextval('public.users_id_seq'::regclass);
--
-- Name: webauthn_challenges id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.webauthn_challenges ALTER COLUMN id SET DEFAULT nextval('public.webauthn_challenges_id_seq'::regclass);
--
-- Name: api_tokens api_tokens_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.api_tokens
ADD CONSTRAINT api_tokens_pkey PRIMARY KEY (id);
--
-- Name: api_tokens api_tokens_token_hash_key; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.api_tokens
ADD CONSTRAINT api_tokens_token_hash_key UNIQUE (token_hash);
--
-- Name: email_verifications email_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.email_verifications
ADD CONSTRAINT email_verifications_pkey PRIMARY KEY (id);
--
-- Name: email_verifications email_verifications_token_key; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.email_verifications
ADD CONSTRAINT email_verifications_token_key UNIQUE (token);
--
-- Name: login_requests login_requests_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.login_requests
ADD CONSTRAINT login_requests_pkey PRIMARY KEY (id);
--
-- Name: login_requests login_requests_token_key; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.login_requests
ADD CONSTRAINT login_requests_token_key UNIQUE (token);
--
-- Name: login_requests login_requests_token_unique; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.login_requests
ADD CONSTRAINT login_requests_token_unique UNIQUE (token);
--
-- Name: org_invites org_invites_org_id_email_key; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.org_invites
ADD CONSTRAINT org_invites_org_id_email_key UNIQUE (org_id, email);
--
-- Name: org_invites org_invites_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.org_invites
ADD CONSTRAINT org_invites_pkey PRIMARY KEY (id);
--
-- Name: org_invites org_invites_token_key; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.org_invites
ADD CONSTRAINT org_invites_token_key UNIQUE (token);
--
-- Name: org_members org_members_org_id_user_id_key; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.org_members
ADD CONSTRAINT org_members_org_id_user_id_key UNIQUE (org_id, user_id);
--
-- Name: org_members org_members_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.org_members
ADD CONSTRAINT org_members_pkey PRIMARY KEY (id);
--
-- Name: org_sites org_sites_domain_key; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.org_sites
ADD CONSTRAINT org_sites_domain_key UNIQUE (domain);
--
-- Name: org_sites org_sites_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.org_sites
ADD CONSTRAINT org_sites_pkey PRIMARY KEY (id);
--
-- Name: orgs orgs_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.orgs
ADD CONSTRAINT orgs_pkey PRIMARY KEY (id);
--
-- Name: orgs orgs_slug_key; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.orgs
ADD CONSTRAINT orgs_slug_key UNIQUE (slug);
--
-- Name: passkeys passkeys_credential_id_key; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.passkeys
ADD CONSTRAINT passkeys_credential_id_key UNIQUE (credential_id);
--
-- Name: passkeys passkeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.passkeys
ADD CONSTRAINT passkeys_pkey PRIMARY KEY (id);
--
-- Name: passkeys passkeys_webauthn_user_id_key; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.passkeys
ADD CONSTRAINT passkeys_webauthn_user_id_key UNIQUE (webauthn_user_id);
--
-- Name: password_resets password_resets_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.password_resets
ADD CONSTRAINT password_resets_pkey PRIMARY KEY (id);
--
-- Name: password_resets password_resets_token_key; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.password_resets
ADD CONSTRAINT password_resets_token_key UNIQUE (token);
--
-- Name: schema_migrations schema_migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.schema_migrations
ADD CONSTRAINT schema_migrations_pkey PRIMARY KEY (version);
--
-- Name: sessions sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.sessions
ADD CONSTRAINT sessions_pkey PRIMARY KEY (id);
--
-- Name: sessions sessions_token_hash_key; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.sessions
ADD CONSTRAINT sessions_token_hash_key UNIQUE (token_hash);
--
-- Name: user_devices user_devices_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.user_devices
ADD CONSTRAINT user_devices_pkey PRIMARY KEY (id);
--
-- Name: user_devices user_devices_user_id_device_fingerprint_key; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.user_devices
ADD CONSTRAINT user_devices_user_id_device_fingerprint_key UNIQUE (user_id, device_fingerprint);
--
-- Name: users users_email_key; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.users
ADD CONSTRAINT users_email_key UNIQUE (email);
--
-- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.users
ADD CONSTRAINT users_pkey PRIMARY KEY (id);
--
-- Name: webauthn_challenges webauthn_challenges_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.webauthn_challenges
ADD CONSTRAINT webauthn_challenges_pkey PRIMARY KEY (id);
--
-- Name: idx_api_tokens_expires; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX idx_api_tokens_expires ON public.api_tokens USING btree (expires_at);
--
-- Name: idx_api_tokens_user; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX idx_api_tokens_user ON public.api_tokens USING btree (user_id);
--
-- Name: idx_email_verifications_expires; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX idx_email_verifications_expires ON public.email_verifications USING btree (expires_at);
--
-- Name: idx_login_requests_expires; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX idx_login_requests_expires ON public.login_requests USING btree (expires_at);
--
-- Name: idx_login_requests_token; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX idx_login_requests_token ON public.login_requests USING btree (token);
--
-- Name: idx_login_requests_user; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX idx_login_requests_user ON public.login_requests USING btree (user_id);
--
-- Name: idx_org_invites_email; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX idx_org_invites_email ON public.org_invites USING btree (email);
--
-- Name: idx_org_invites_expires; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX idx_org_invites_expires ON public.org_invites USING btree (expires_at);
--
-- Name: idx_org_members_org; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX idx_org_members_org ON public.org_members USING btree (org_id);
--
-- Name: idx_org_members_user; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX idx_org_members_user ON public.org_members USING btree (user_id);
--
-- Name: idx_org_sites_org; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX idx_org_sites_org ON public.org_sites USING btree (org_id);
--
-- Name: idx_passkeys_user; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX idx_passkeys_user ON public.passkeys USING btree (user_id);
--
-- Name: idx_password_resets_expires; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX idx_password_resets_expires ON public.password_resets USING btree (expires_at);
--
-- Name: idx_password_resets_user; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX idx_password_resets_user ON public.password_resets USING btree (user_id);
--
-- Name: idx_sessions_active; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX idx_sessions_active ON public.sessions USING btree (token_hash) WHERE (revoked_at IS NULL);
--
-- Name: idx_sessions_device; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX idx_sessions_device ON public.sessions USING btree (device_id);
--
-- Name: idx_sessions_user; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX idx_sessions_user ON public.sessions USING btree (user_id);
--
-- Name: idx_user_devices_fingerprint; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX idx_user_devices_fingerprint ON public.user_devices USING btree (device_fingerprint);
--
-- Name: idx_user_devices_user; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX idx_user_devices_user ON public.user_devices USING btree (user_id);
--
-- Name: idx_webauthn_challenges_created; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX idx_webauthn_challenges_created ON public.webauthn_challenges USING btree (created_at);
--
-- Name: api_tokens api_tokens_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.api_tokens
ADD CONSTRAINT api_tokens_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;
--
-- Name: email_verifications email_verifications_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.email_verifications
ADD CONSTRAINT email_verifications_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;
--
-- Name: login_requests login_requests_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.login_requests
ADD CONSTRAINT login_requests_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;
--
-- Name: org_invites org_invites_invited_by_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.org_invites
ADD CONSTRAINT org_invites_invited_by_fkey FOREIGN KEY (invited_by) REFERENCES public.users(id) ON DELETE CASCADE;
--
-- Name: org_invites org_invites_org_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.org_invites
ADD CONSTRAINT org_invites_org_id_fkey FOREIGN KEY (org_id) REFERENCES public.orgs(id) ON DELETE CASCADE;
--
-- Name: org_members org_members_org_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.org_members
ADD CONSTRAINT org_members_org_id_fkey FOREIGN KEY (org_id) REFERENCES public.orgs(id) ON DELETE CASCADE;
--
-- Name: org_members org_members_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.org_members
ADD CONSTRAINT org_members_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;
--
-- Name: org_sites org_sites_org_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.org_sites
ADD CONSTRAINT org_sites_org_id_fkey FOREIGN KEY (org_id) REFERENCES public.orgs(id) ON DELETE CASCADE;
--
-- Name: passkeys passkeys_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.passkeys
ADD CONSTRAINT passkeys_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;
--
-- Name: password_resets password_resets_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.password_resets
ADD CONSTRAINT password_resets_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;
--
-- Name: sessions sessions_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.sessions
ADD CONSTRAINT sessions_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.user_devices(id) ON DELETE SET NULL;
--
-- Name: sessions sessions_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.sessions
ADD CONSTRAINT sessions_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;
--
-- Name: user_devices user_devices_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.user_devices
ADD CONSTRAINT user_devices_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;
--
-- PostgreSQL database dump complete
--
\unrestrict 7omiXDURqmmr2m2jWDDMoltRzeUAT80fRWiPifpD7IpQGCLgxQNBFsA5uBgakPg
--
-- Dbmate schema migrations
--
INSERT INTO public.schema_migrations (version) VALUES
('001'),
('002');