Files
pagodera/lib/db/migrations/014_add_bid_increment.sql
Evandro Fonseca Junior ab37b477df feat: implement market page with QueryProvider and dynamic listings
- wrap root layout with QueryProvider for React Query
- replace market UnderConstruction placeholder with MarketClient and real data fetching
- implement search, pagination, and sort via search params using getActiveListings
- add necessary client components and queries
- update dependencies (e.g., prisma, pkg-types)
2025-11-05 01:58:03 -03:00

55 lines
2.0 KiB
SQL

-- Migration 014: Adicionar campos de incremento mínimo e preços iniciais para leilões
-- Criado em: 2025-01-29
-- Adicionar colunas para incremento mínimo de lance
ALTER TABLE listings
ADD COLUMN IF NOT EXISTS min_bid_increment DECIMAL(10, 2);
-- Adicionar colunas para armazenar preços iniciais (para leilões)
ALTER TABLE listings
ADD COLUMN IF NOT EXISTS initial_price_pix DECIMAL(10, 2),
ADD COLUMN IF NOT EXISTS initial_price_tibia_coins INTEGER,
ADD COLUMN IF NOT EXISTS initial_price_gold_coins BIGINT;
-- Comentários para documentação
COMMENT ON COLUMN listings.min_bid_increment IS 'Incremento mínimo para novos lances (padrão: 5% do preço inicial ou valor fixo)';
COMMENT ON COLUMN listings.initial_price_pix IS 'Preço inicial em PIX (para leilões)';
COMMENT ON COLUMN listings.initial_price_tibia_coins IS 'Preço inicial em Tibia Coins (para leilões)';
COMMENT ON COLUMN listings.initial_price_gold_coins IS 'Preço inicial em Gold Coins (para leilões)';
-- Atualizar preços iniciais para leilões existentes (copiar dos preços atuais)
UPDATE listings
SET
initial_price_pix = price_pix,
initial_price_tibia_coins = price_tibia_coins,
initial_price_gold_coins = price_gold_coins
WHERE is_auction = TRUE
AND (initial_price_pix IS NULL OR initial_price_tibia_coins IS NULL OR initial_price_gold_coins IS NULL);
-- Calcular incremento mínimo para leilões existentes (5% do preço inicial ou mínimo de R$ 10,00)
UPDATE listings
SET min_bid_increment = GREATEST(
COALESCE(initial_price_pix * 0.05, 0),
10.00
)
WHERE is_auction = TRUE
AND min_bid_increment IS NULL
AND initial_price_pix IS NOT NULL;
-- Para leilões com preço em TC ou GP, usar incremento fixo de 5% ou mínimo
UPDATE listings
SET min_bid_increment = COALESCE(
min_bid_increment,
GREATEST(
CASE
WHEN initial_price_tibia_coins IS NOT NULL THEN initial_price_tibia_coins * 0.05
WHEN initial_price_gold_coins IS NOT NULL THEN initial_price_gold_coins * 0.05
ELSE 10.00
END,
10.00
)
)
WHERE is_auction = TRUE
AND min_bid_increment IS NULL;