szabadpalya/api/internal/store/queries/seed.sql

54 lines
2.1 KiB
SQL

-- The development and CI fixture loader. Not reachable from the shipping
-- image: the seeder is built from its own Dockerfile stage.
-- name: SeedReset :exec
-- Relations cascade, so campaigns and owners are enough; users go too because
-- the fixture's pledges are anonymous and any account left behind is an orphan.
DELETE FROM pledges;
-- name: SeedResetCampaigns :exec
DELETE FROM campaigns;
-- name: SeedResetOwners :exec
DELETE FROM owners;
-- name: SeedResetUsers :exec
DELETE FROM users;
-- name: SeedOwner :one
INSERT INTO owners (id, slug, name, initials, location, blurb, avatar_url, approved)
VALUES (@id, @slug, @name, @initials, @location, @blurb, NULLIF(@avatar_url, ''), true)
ON CONFLICT (slug) DO UPDATE SET name = EXCLUDED.name
RETURNING id;
-- name: SeedCampaign :exec
INSERT INTO campaigns (id, slug, title, category, summary, art, goal_amount,
ends_at, status, owner_id)
VALUES (@id, @slug, @title, @category, @summary, @art, @goal_amount,
@ends_at, @status::campaign_status, @owner_id);
-- name: SeedStorySection :exec
INSERT INTO story_sections (id, campaign_id, heading, body, position)
VALUES (@id, @campaign_id, @heading, @body, @position);
-- name: SeedTier :exec
INSERT INTO reward_tiers (id, campaign_id, type, price, list_price, title,
includes, inventory_limit, estimated_delivery,
featured, position)
VALUES (@id, @campaign_id, @type::tier_type, @price, @list_price, @title,
@includes, @inventory_limit, @estimated_delivery, @featured, @position);
-- name: SeedPledge :exec
INSERT INTO pledges (id, campaign_id, tier_id, backer_email, quantity,
amount, status, captured_at)
VALUES (@id, @campaign_id, @tier_id, @backer_email, 1,
@amount, @status::pledge_status, @captured_at);
-- name: SeedCampaignUpdate :exec
INSERT INTO campaign_updates (id, campaign_id, title, body)
VALUES (@id, @campaign_id, @title, @body);
-- name: SeedComment :exec
INSERT INTO comments (id, campaign_id, author_name, body)
VALUES (@id, @campaign_id, @author_name, @body);