status-go/appdatabase/migrations/sql/1691173699_add_collectibles...

51 lines
1.8 KiB
SQL

CREATE TABLE IF NOT EXISTS collectible_data_cache (
chain_id UNSIGNED BIGINT NOT NULL,
contract_address VARCHAR NOT NULL,
token_id BLOB NOT NULL,
provider VARCHAR NOT NULL,
name VARCHAR NOT NULL,
description VARCHAR NOT NULL,
permalink VARCHAR NOT NULL,
image_url VARCHAR NOT NULL,
animation_url VARCHAR NOT NULL,
animation_media_type VARCHAR NOT NULL,
background_color VARCHAR NOT NULL,
token_uri VARCHAR NOT NULL
);
CREATE UNIQUE INDEX IF NOT EXISTS collectible_data_identify_entry ON collectible_data_cache (chain_id, contract_address, token_id);
CREATE TABLE IF NOT EXISTS collectible_traits_cache (
chain_id UNSIGNED BIGINT NOT NULL,
contract_address VARCHAR NOT NULL,
token_id BLOB NOT NULL,
trait_type VARCHAR NOT NULL,
trait_value VARCHAR NOT NULL,
display_type VARCHAR NOT NULL,
max_value VARCHAR NOT NULL,
FOREIGN KEY(chain_id, contract_address, token_id) REFERENCES collectible_data_cache(chain_id, contract_address, token_id)
ON UPDATE CASCADE
ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS collection_data_cache (
chain_id UNSIGNED BIGINT NOT NULL,
contract_address VARCHAR NOT NULL,
provider VARCHAR NOT NULL,
name VARCHAR NOT NULL,
slug VARCHAR NOT NULL,
image_url VARCHAR NOT NULL
);
CREATE UNIQUE INDEX IF NOT EXISTS collection_data_identify_entry ON collection_data_cache (chain_id, contract_address);
CREATE TABLE IF NOT EXISTS collection_traits_cache (
chain_id UNSIGNED BIGINT NOT NULL,
contract_address VARCHAR NOT NULL,
trait_type VARCHAR NOT NULL,
min REAL NOT NULL,
max REAL NOT NULL,
FOREIGN KEY(chain_id, contract_address) REFERENCES collection_data_cache(chain_id, contract_address)
ON UPDATE CASCADE
ON DELETE CASCADE
);