add listing expiry checker task
This commit is contained in:
@@ -16,6 +16,9 @@ CREATE TABLE users (
|
||||
updated_at TEXT DEFAULT CURRENT_TIMESTAMP
|
||||
) STRICT;
|
||||
|
||||
CREATE INDEX idx_users_telegram_id ON users(telegram_id);
|
||||
CREATE INDEX idx_users_username ON users(username);
|
||||
|
||||
-- Main listing table (handles all listing types)
|
||||
CREATE TABLE listings (
|
||||
id INTEGER PRIMARY KEY,
|
||||
@@ -34,6 +37,7 @@ CREATE TABLE listings (
|
||||
slots_available INTEGER DEFAULT 1,
|
||||
|
||||
-- Timing
|
||||
is_active INTEGER DEFAULT 1,
|
||||
starts_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
||||
ends_at TEXT NOT NULL,
|
||||
anti_snipe_minutes INTEGER DEFAULT 5,
|
||||
@@ -43,6 +47,10 @@ CREATE TABLE listings (
|
||||
FOREIGN KEY (seller_id) REFERENCES users(id)
|
||||
) STRICT;
|
||||
|
||||
CREATE INDEX idx_listings_seller_id ON listings(seller_id);
|
||||
CREATE INDEX idx_listings_type ON listings(listing_type);
|
||||
CREATE INDEX idx_listings_ends_at ON listings(ends_at);
|
||||
|
||||
-- Proxy bid strategies (NOT actual bids, but bidding strategies)
|
||||
CREATE TABLE proxy_bids (
|
||||
id INTEGER PRIMARY KEY,
|
||||
@@ -59,6 +67,8 @@ CREATE TABLE proxy_bids (
|
||||
UNIQUE(listing_id, buyer_id) -- One active proxy per user per listing
|
||||
) STRICT;
|
||||
|
||||
CREATE INDEX idx_proxy_bids_listing_buyer ON proxy_bids(listing_id, buyer_id);
|
||||
|
||||
-- Actual bids that happened (events)
|
||||
CREATE TABLE bids (
|
||||
id INTEGER PRIMARY KEY,
|
||||
@@ -83,6 +93,10 @@ CREATE TABLE bids (
|
||||
FOREIGN KEY (proxy_bid_id) REFERENCES proxy_bids(id)
|
||||
) STRICT;
|
||||
|
||||
CREATE INDEX idx_bids_listing_id ON bids(listing_id);
|
||||
CREATE INDEX idx_bids_buyer_id ON bids(buyer_id);
|
||||
CREATE INDEX idx_bids_amount ON bids(bid_amount);
|
||||
|
||||
-- Media attachments
|
||||
CREATE TABLE listing_medias (
|
||||
id INTEGER PRIMARY KEY,
|
||||
@@ -95,6 +109,8 @@ CREATE TABLE listing_medias (
|
||||
FOREIGN KEY (listing_id) REFERENCES listings(id)
|
||||
) STRICT;
|
||||
|
||||
CREATE INDEX idx_listing_medias_listing_id ON listing_medias(listing_id);
|
||||
|
||||
-- User preferences
|
||||
CREATE TABLE user_settings (
|
||||
user_id INTEGER PRIMARY KEY,
|
||||
@@ -106,12 +122,19 @@ CREATE TABLE user_settings (
|
||||
FOREIGN KEY (user_id) REFERENCES users(id)
|
||||
) STRICT;
|
||||
|
||||
-- Create indexes for better performance
|
||||
CREATE INDEX idx_listings_seller_id ON listings(seller_id);
|
||||
CREATE INDEX idx_listings_type ON listings(listing_type);
|
||||
CREATE INDEX idx_listings_ends_at ON listings(ends_at);
|
||||
CREATE INDEX idx_bids_listing_id ON bids(listing_id);
|
||||
CREATE INDEX idx_bids_buyer_id ON bids(buyer_id);
|
||||
CREATE INDEX idx_bids_amount ON bids(bid_amount);
|
||||
CREATE INDEX idx_proxy_bids_listing_buyer ON proxy_bids(listing_id, buyer_id);
|
||||
CREATE INDEX idx_listing_medias_listing_id ON listing_medias(listing_id);
|
||||
-- Message about a listing that were forwarded from the bot to a channel or user
|
||||
CREATE TABLE forwarded_listings (
|
||||
id INTEGER PRIMARY KEY,
|
||||
listing_id INTEGER NOT NULL,
|
||||
telegram_message_id INTEGER NOT NULL,
|
||||
telegram_chat_id INTEGER NOT NULL,
|
||||
forwarding_user_id INTEGER NOT NULL,
|
||||
created_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
FOREIGN KEY (listing_id) REFERENCES listings(id),
|
||||
FOREIGN KEY (forwarding_user_id) REFERENCES users(id)
|
||||
) STRICT;
|
||||
|
||||
CREATE INDEX idx_forwarded_listings_listing_id ON forwarded_listings(listing_id);
|
||||
CREATE INDEX idx_forwarded_listings_forwarding_user_id ON forwarded_listings(forwarding_user_id);
|
||||
|
||||
Reference in New Issue
Block a user