23 lines
1.1 KiB
SQL
23 lines
1.1 KiB
SQL
CREATE TABLE public.star_gift_purchase_forms (
|
|
buyer_user_id bigint NOT NULL,
|
|
form_id bigint NOT NULL,
|
|
gift_id bigint NOT NULL REFERENCES public.star_gift_catalog(gift_id) ON DELETE RESTRICT,
|
|
revision_id bigint NOT NULL REFERENCES public.star_gift_catalog_revisions(id) ON DELETE RESTRICT,
|
|
recipient_peer_type text NOT NULL,
|
|
recipient_peer_id bigint NOT NULL,
|
|
include_upgrade boolean DEFAULT false NOT NULL,
|
|
hide_name boolean DEFAULT false NOT NULL,
|
|
message text DEFAULT '' NOT NULL,
|
|
charge_stars bigint NOT NULL,
|
|
issued_at integer NOT NULL,
|
|
expires_at integer NOT NULL,
|
|
CONSTRAINT star_gift_purchase_forms_pkey PRIMARY KEY (buyer_user_id, form_id),
|
|
CONSTRAINT star_gift_purchase_form_shape_check CHECK (
|
|
buyer_user_id > 0 AND form_id <> 0 AND gift_id > 0 AND revision_id > 0 AND
|
|
recipient_peer_type IN ('user', 'channel') AND recipient_peer_id > 0 AND
|
|
charge_stars > 0 AND issued_at > 0 AND expires_at = issued_at + 600 AND
|
|
char_length(message) <= 128)
|
|
);
|
|
|
|
CREATE INDEX star_gift_purchase_forms_expiry_idx
|
|
ON public.star_gift_purchase_forms (expires_at, buyer_user_id, form_id);
|