-- 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;