apskel-pos-backend/migrations/000053_create_game_plays_table.up.sql
2025-09-17 19:30:17 +07:00

35 lines
1.1 KiB
SQL

CREATE TABLE game_plays (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
game_id UUID NOT NULL,
customer_id UUID NOT NULL,
prize_id UUID,
token_used INTEGER DEFAULT 0,
random_seed VARCHAR(255),
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
CONSTRAINT fk_game_plays_game
FOREIGN KEY (game_id)
REFERENCES games(id)
ON DELETE CASCADE,
CONSTRAINT fk_game_plays_customer
FOREIGN KEY (customer_id)
REFERENCES customers(id)
ON DELETE CASCADE,
CONSTRAINT fk_game_plays_prize
FOREIGN KEY (prize_id)
REFERENCES game_prizes(id)
ON DELETE SET NULL,
CONSTRAINT chk_game_plays_token_used_non_negative
CHECK (token_used >= 0)
);
-- Create indexes
CREATE INDEX idx_game_plays_game_id ON game_plays(game_id);
CREATE INDEX idx_game_plays_customer_id ON game_plays(customer_id);
CREATE INDEX idx_game_plays_prize_id ON game_plays(prize_id);
CREATE INDEX idx_game_plays_created_at ON game_plays(created_at);
CREATE INDEX idx_game_plays_game_customer ON game_plays(game_id, customer_id);