Add basic storage for validation events

This commit is contained in:
Alex Sherman 2021-06-29 13:47:38 +05:00
parent 6675dac63d
commit d4fe961e34
5 changed files with 123 additions and 0 deletions

View file

@ -0,0 +1,28 @@
class CreateValidationEvents < ActiveRecord::Migration[6.1]
def up
execute <<-SQL
CREATE TYPE validation_type AS ENUM ('email_validation', 'manual_force_delete');
SQL
create_table :validation_events do |t|
t.jsonb :event_data
t.boolean :result
t.references :validation_eventable, polymorphic: true
t.timestamps
end
add_column :validation_events, :event_type, :validation_type
add_index :validation_events, :event_type
end
def down
remove_column :validation_events, :event_type
execute <<-SQL
DROP TYPE validation_type;
SQL
drop_table :validation_events
end
end

View file

@ -65,6 +65,16 @@ CREATE EXTENSION IF NOT EXISTS pgcrypto WITH SCHEMA public;
COMMENT ON EXTENSION pgcrypto IS 'cryptographic functions';
--
-- Name: validation_type; Type: TYPE; Schema: public; Owner: -
--
CREATE TYPE public.validation_type AS ENUM (
'email_validation',
'manual_force_delete'
);
--
-- Name: generate_zonefile(character varying); Type: FUNCTION; Schema: public; Owner: -
--
@ -2595,6 +2605,41 @@ CREATE SEQUENCE public.users_id_seq
ALTER SEQUENCE public.users_id_seq OWNED BY public.users.id;
--
-- Name: validation_events; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.validation_events (
id bigint NOT NULL,
event_data jsonb,
result boolean,
validation_eventable_type character varying,
validation_eventable_id bigint,
created_at timestamp(6) without time zone NOT NULL,
updated_at timestamp(6) without time zone NOT NULL,
event_type public.validation_type
);
--
-- Name: validation_events_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.validation_events_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: validation_events_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.validation_events_id_seq OWNED BY public.validation_events.id;
--
-- Name: versions; Type: TABLE; Schema: public; Owner: -
--
@ -3170,6 +3215,13 @@ ALTER TABLE ONLY public.settings ALTER COLUMN id SET DEFAULT nextval('public.set
ALTER TABLE ONLY public.users ALTER COLUMN id SET DEFAULT nextval('public.users_id_seq'::regclass);
--
-- Name: validation_events id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.validation_events ALTER COLUMN id SET DEFAULT nextval('public.validation_events_id_seq'::regclass);
--
-- Name: versions id; Type: DEFAULT; Schema: public; Owner: -
--
@ -3814,6 +3866,14 @@ ALTER TABLE ONLY public.users
ADD CONSTRAINT users_pkey PRIMARY KEY (id);
--
-- Name: validation_events validation_events_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.validation_events
ADD CONSTRAINT validation_events_pkey PRIMARY KEY (id);
--
-- Name: versions versions_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
@ -4427,6 +4487,20 @@ CREATE INDEX index_users_on_identity_code ON public.users USING btree (identity_
CREATE INDEX index_users_on_registrar_id ON public.users USING btree (registrar_id);
--
-- Name: index_validation_events_on_event_type; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX index_validation_events_on_event_type ON public.validation_events USING btree (event_type);
--
-- Name: index_validation_events_on_validation_eventable; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX index_validation_events_on_validation_eventable ON public.validation_events USING btree (validation_eventable_type, validation_eventable_id);
--
-- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -
--
@ -5154,6 +5228,7 @@ INSERT INTO "schema_migrations" (version) VALUES
('20200921084356'),
('20210215101019'),
('20210616112332'),
('20210629074044'),
('20210628090353'),
('20210708131814');