28 lines
1.5 KiB
SQL
28 lines
1.5 KiB
SQL
-- Create enhanced articles table to replace news table structure
|
|
CREATE TABLE IF NOT EXISTS articles
|
|
(
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
title TEXT NOT NULL,
|
|
url TEXT NOT NULL,
|
|
source_type TEXT NOT NULL DEFAULT 'rss', -- 'rss', 'manual'
|
|
rss_content TEXT, -- RSS description/excerpt
|
|
full_content TEXT, -- Scraped full content
|
|
summary TEXT, -- AI-generated summary
|
|
processing_status TEXT NOT NULL DEFAULT 'pending', -- 'pending', 'processing', 'completed', 'failed'
|
|
published_at TIMESTAMP NOT NULL,
|
|
added_at TIMESTAMP NOT NULL DEFAULT (datetime('now')),
|
|
read_at TIMESTAMP,
|
|
read_count INTEGER NOT NULL DEFAULT 0,
|
|
reading_time INTEGER, -- in seconds
|
|
ai_enabled BOOLEAN NOT NULL DEFAULT 1,
|
|
created_at TIMESTAMP NOT NULL DEFAULT (datetime('now')),
|
|
updated_at TIMESTAMP NOT NULL DEFAULT (datetime('now'))
|
|
);
|
|
|
|
-- Create indexes for performance
|
|
CREATE INDEX IF NOT EXISTS idx_articles_published_at ON articles (published_at);
|
|
CREATE INDEX IF NOT EXISTS idx_articles_added_at ON articles (added_at);
|
|
CREATE INDEX IF NOT EXISTS idx_articles_processing_status ON articles (processing_status);
|
|
CREATE INDEX IF NOT EXISTS idx_articles_source_type ON articles (source_type);
|
|
CREATE INDEX IF NOT EXISTS idx_articles_read_at ON articles (read_at);
|