Files
2026-07-13 12:32:25 +08:00

584 lines
12 KiB
PL/PgSQL

-- Downloaded from: https://github.com/heydabop/rustyz/blob/f26ef98d6439f7cc046125ab75ecd2bc7b0ae3b7/schema.sql
--
-- PostgreSQL database dump
--
-- Dumped from database version 12.4 (Debian 12.4-3)
-- Dumped by pg_dump version 12.4 (Debian 12.4-3)
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_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: online_status; Type: TYPE; Schema: public; Owner: -
--
CREATE TYPE public.online_status AS ENUM (
'dnd',
'idle',
'invisible',
'offline',
'online'
);
--
-- Name: shipment_carrier; Type: TYPE; Schema: public; Owner: -
--
CREATE TYPE public.shipment_carrier AS ENUM (
'fedex',
'ups',
'usps'
);
--
-- Name: shipment_tracking_status; Type: TYPE; Schema: public; Owner: -
--
CREATE TYPE public.shipment_tracking_status AS ENUM (
'unknown',
'pre_transit',
'transit',
'delivered',
'returned',
'failure'
);
--
-- Name: row_update_date(); Type: FUNCTION; Schema: public; Owner: -
--
CREATE FUNCTION public.row_update_date() RETURNS trigger
LANGUAGE plpgsql
AS $$
begin
new.update_date = now();
return new;
end;
$$;
SET default_tablespace = '';
SET default_table_access_method = heap;
--
-- Name: bot_start; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.bot_start (
id integer NOT NULL,
create_date timestamp with time zone DEFAULT now() NOT NULL,
update_date timestamp with time zone DEFAULT now() NOT NULL,
clean_shutdown boolean
);
--
-- Name: bot_start_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.bot_start_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: bot_start_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.bot_start_id_seq OWNED BY public.bot_start.id;
--
-- Name: command; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.command (
id integer NOT NULL,
create_date timestamp with time zone DEFAULT now() NOT NULL,
author_id bigint NOT NULL,
channel_id bigint NOT NULL,
guild_id bigint,
name character varying(32) NOT NULL,
options jsonb
);
--
-- Name: command_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.command_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: command_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.command_id_seq OWNED BY public.command.id;
--
-- Name: message; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.message (
id bigint NOT NULL,
create_date timestamp with time zone DEFAULT now() NOT NULL,
discord_id numeric NOT NULL,
author_id bigint NOT NULL,
channel_id bigint NOT NULL,
guild_id bigint,
content text,
update_date timestamp with time zone DEFAULT now() NOT NULL
);
--
-- Name: message_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.message_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: message_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.message_id_seq OWNED BY public.message.id;
--
-- Name: playtime_button; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.playtime_button (
id integer NOT NULL,
create_date timestamp with time zone DEFAULT now() NOT NULL,
author_id bigint NOT NULL,
user_ids bigint[] NOT NULL,
username character varying(32),
start_date timestamp with time zone,
end_date timestamp with time zone NOT NULL,
start_offset integer NOT NULL
);
--
-- Name: playtime_button_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.playtime_button_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: playtime_button_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.playtime_button_id_seq OWNED BY public.playtime_button.id;
--
-- Name: shipment; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.shipment (
id integer NOT NULL,
create_date timestamp with time zone DEFAULT now() NOT NULL,
update_date timestamp with time zone DEFAULT now() NOT NULL,
carrier public.shipment_carrier NOT NULL,
tracking_number character varying(100) NOT NULL,
author_id bigint NOT NULL,
channel_id bigint NOT NULL,
status public.shipment_tracking_status NOT NULL,
comment character varying(50)
);
--
-- Name: shipment_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.shipment_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: shipment_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.shipment_id_seq OWNED BY public.shipment.id;
--
-- Name: user_karma; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.user_karma (
guild_id bigint NOT NULL,
user_id bigint NOT NULL,
karma integer NOT NULL
);
--
-- Name: user_presence; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.user_presence (
id bigint NOT NULL,
create_date timestamp with time zone DEFAULT now() NOT NULL,
user_id bigint NOT NULL,
status public.online_status NOT NULL,
game_name character varying(512)
);
--
-- Name: user_presence_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.user_presence_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: user_presence_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.user_presence_id_seq OWNED BY public.user_presence.id;
--
-- Name: vote; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.vote (
id integer NOT NULL,
create_date timestamp with time zone DEFAULT now() NOT NULL,
guild_id bigint NOT NULL,
voter_id bigint NOT NULL,
votee_id bigint NOT NULL,
is_upvote boolean NOT NULL
);
--
-- Name: vote_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.vote_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: vote_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.vote_id_seq OWNED BY public.vote.id;
--
-- Name: bot_start id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.bot_start ALTER COLUMN id SET DEFAULT nextval('public.bot_start_id_seq'::regclass);
--
-- Name: command id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.command ALTER COLUMN id SET DEFAULT nextval('public.command_id_seq'::regclass);
--
-- Name: message id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.message ALTER COLUMN id SET DEFAULT nextval('public.message_id_seq'::regclass);
--
-- Name: playtime_button id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.playtime_button ALTER COLUMN id SET DEFAULT nextval('public.playtime_button_id_seq'::regclass);
--
-- Name: shipment id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.shipment ALTER COLUMN id SET DEFAULT nextval('public.shipment_id_seq'::regclass);
--
-- Name: user_presence id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.user_presence ALTER COLUMN id SET DEFAULT nextval('public.user_presence_id_seq'::regclass);
--
-- Name: vote id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.vote ALTER COLUMN id SET DEFAULT nextval('public.vote_id_seq'::regclass);
--
-- Name: bot_start bot_start_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.bot_start
ADD CONSTRAINT bot_start_pkey PRIMARY KEY (id);
--
-- Name: command command_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.command
ADD CONSTRAINT command_pkey PRIMARY KEY (id);
--
-- Name: message message_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.message
ADD CONSTRAINT message_pkey PRIMARY KEY (id);
--
-- Name: shipment shipment_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.shipment
ADD CONSTRAINT shipment_pkey PRIMARY KEY (id);
--
-- Name: shipment shipment_uk_carrier_number; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.shipment
ADD CONSTRAINT shipment_uk_carrier_number UNIQUE (carrier, tracking_number);
--
-- Name: user_karma user_karma_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.user_karma
ADD CONSTRAINT user_karma_pkey PRIMARY KEY (guild_id, user_id);
--
-- Name: user_presence user_presence_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.user_presence
ADD CONSTRAINT user_presence_pkey PRIMARY KEY (id);
--
-- Name: vote vote_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.vote
ADD CONSTRAINT vote_pkey PRIMARY KEY (id);
--
-- Name: user_karma_guild_id_idx; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX user_karma_guild_id_idx ON public.user_karma USING btree (guild_id);
--
-- Name: vote_voter_id_idx; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX vote_voter_id_idx ON public.vote USING btree (voter_id);
--
-- Name: bot_start bot_start_row_update_date; Type: TRIGGER; Schema: public; Owner: -
--
CREATE TRIGGER bot_start_row_update_date BEFORE UPDATE ON public.bot_start FOR EACH ROW EXECUTE FUNCTION public.row_update_date();
--
-- Name: message message_row_update_date; Type: TRIGGER; Schema: public; Owner: -
--
CREATE TRIGGER message_row_update_date BEFORE UPDATE ON public.message FOR EACH ROW EXECUTE FUNCTION public.row_update_date();
--
-- Name: shipment shipment_row_update_date; Type: TRIGGER; Schema: public; Owner: -
--
CREATE TRIGGER shipment_row_update_date BEFORE UPDATE ON public.shipment FOR EACH ROW EXECUTE FUNCTION public.row_update_date();
--
-- Name: TABLE bot_start; Type: ACL; Schema: public; Owner: -
--
GRANT SELECT,INSERT,UPDATE ON TABLE public.bot_start TO rustyz;
--
-- Name: SEQUENCE bot_start_id_seq; Type: ACL; Schema: public; Owner: -
--
GRANT USAGE ON SEQUENCE public.bot_start_id_seq TO rustyz;
--
-- Name: TABLE command; Type: ACL; Schema: public; Owner: -
--
GRANT SELECT,INSERT ON TABLE public.command TO rustyz;
--
-- Name: SEQUENCE command_id_seq; Type: ACL; Schema: public; Owner: -
--
GRANT USAGE ON SEQUENCE public.command_id_seq TO rustyz;
--
-- Name: TABLE message; Type: ACL; Schema: public; Owner: -
--
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.message TO rustyz;
--
-- Name: SEQUENCE message_id_seq; Type: ACL; Schema: public; Owner: -
--
GRANT USAGE ON SEQUENCE public.message_id_seq TO rustyz;
--
-- Name: TABLE playtime_button; Type: ACL; Schema: public; Owner: -
--
GRANT SELECT,INSERT,UPDATE ON TABLE public.playtime_button TO rustyz;
--
-- Name: SEQUENCE playtime_button_id_seq; Type: ACL; Schema: public; Owner: -
--
GRANT USAGE ON SEQUENCE public.playtime_button_id_seq TO rustyz;
--
-- Name: TABLE shipment; Type: ACL; Schema: public; Owner: -
--
GRANT SELECT,INSERT,UPDATE ON TABLE public.shipment TO rustyz;
--
-- Name: SEQUENCE shipment_id_seq; Type: ACL; Schema: public; Owner: -
--
GRANT USAGE ON SEQUENCE public.shipment_id_seq TO rustyz;
--
-- Name: TABLE user_karma; Type: ACL; Schema: public; Owner: -
--
GRANT SELECT,INSERT,UPDATE ON TABLE public.user_karma TO rustyz;
--
-- Name: TABLE user_presence; Type: ACL; Schema: public; Owner: -
--
GRANT SELECT,INSERT ON TABLE public.user_presence TO rustyz;
--
-- Name: SEQUENCE user_presence_id_seq; Type: ACL; Schema: public; Owner: -
--
GRANT USAGE ON SEQUENCE public.user_presence_id_seq TO rustyz;
--
-- Name: TABLE vote; Type: ACL; Schema: public; Owner: -
--
GRANT SELECT,INSERT,UPDATE ON TABLE public.vote TO rustyz;
--
-- Name: SEQUENCE vote_id_seq; Type: ACL; Schema: public; Owner: -
--
GRANT USAGE ON SEQUENCE public.vote_id_seq TO rustyz;
--
-- PostgreSQL database dump complete
--