CREATE TABLE localizations (
id SERIAL PRIMARY KEY,
game_id integer NOT NULL,
name text NOT NULL,
locale text NOT NULL,
updated_at timestamp NOT NULL DEFAULT current_timestamp,
created_at timestamp NOT NULL DEFAULT current_timestamp
);

CREATE OR REPLACE FUNCTION update_localizations_updated_at() RETURNS trigger AS $$
BEGIN
    IF NEW.updated_at = OLD.updated_at THEN
      NEW.updated_at = current_timestamp;
    END IF;
    RETURN NEW;
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER update_localizations_updated_at_trigger
BEFORE UPDATE ON localizations
FOR EACH ROW EXECUTE PROCEDURE update_localizations_updated_at();

CREATE UNIQUE INDEX ON localizations (game_id, locale);
CREATE INDEX ON localizations (locale);
