chore: init monorepo with GPL-3.0 license, docs, backend skeleton, frontend wiring

This commit is contained in:
loki5512344 2026-09-06 14:34:57 +02:00
commit 43cf0e277d
Signed by: boba
GPG key ID: 253067914055423B
57 changed files with 5027 additions and 0 deletions

View file

@ -0,0 +1,32 @@
-- Таблица модов (метаданные репозитория)
CREATE TABLE IF NOT EXISTS mods (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
github_repo_id BIGINT UNIQUE NOT NULL,
owner VARCHAR(255) NOT NULL,
repo VARCHAR(255) NOT NULL,
slug VARCHAR(64) UNIQUE NOT NULL,
name VARCHAR(128) NOT NULL,
summary TEXT,
icon_url TEXT,
default_branch VARCHAR(32) NOT NULL DEFAULT 'main',
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
-- Таблица версий (релизов), полученных через Webhook/API
CREATE TABLE IF NOT EXISTS mod_versions (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
mod_id UUID NOT NULL REFERENCES mods(id) ON DELETE CASCADE,
version_number VARCHAR(64) NOT NULL,
game_versions VARCHAR(32)[] NOT NULL,
loaders VARCHAR(32)[] NOT NULL,
download_url TEXT NOT NULL,
file_sha256 CHAR(64) NOT NULL,
published_at TIMESTAMPTZ NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
CONSTRAINT unique_mod_version UNIQUE (mod_id, version_number)
);
-- Индексы для быстрой фильтрации лаунчерами
CREATE INDEX IF NOT EXISTS idx_mods_slug ON mods(slug);
CREATE INDEX IF NOT EXISTS idx_versions_lookup ON mod_versions USING GIN (game_versions, loaders);