0ccbef45a1
Co-authored-by: Cursor <cursoragent@cursor.com>
112 lines
4.3 KiB
Transact-SQL
112 lines
4.3 KiB
Transact-SQL
-- atakanozban.com - full database schema
|
|
-- Target: Microsoft SQL Server
|
|
--
|
|
-- This project uses EF6 Code First with Database.SetInitializer(null), which means
|
|
-- Entity Framework will NOT create or migrate the database automatically. Run this
|
|
-- script once against a fresh database to create every table the application needs.
|
|
--
|
|
-- Usage:
|
|
-- 1. Create an empty database, e.g.:
|
|
-- CREATE DATABASE atakanozbancomdb;
|
|
-- 2. Run this whole script against that database (SSMS, Azure Data Studio, sqlcmd, etc.)
|
|
|
|
USE atakanozbancomdb;
|
|
GO
|
|
|
|
-- =========================================================
|
|
-- Admin users (used for the /login and /admin panel)
|
|
-- =========================================================
|
|
CREATE TABLE dbo.admins (
|
|
id INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
|
|
username NVARCHAR(100) NOT NULL,
|
|
password NVARCHAR(255) NOT NULL
|
|
);
|
|
GO
|
|
|
|
-- =========================================================
|
|
-- My Projects
|
|
-- =========================================================
|
|
CREATE TABLE dbo.myprojects (
|
|
id INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
|
|
image NVARCHAR(MAX) NULL, -- legacy, kept for backward compatibility
|
|
iframe NVARCHAR(MAX) NULL, -- legacy, kept for backward compatibility
|
|
title NVARCHAR(255) NULL,
|
|
description NVARCHAR(MAX) NULL
|
|
);
|
|
GO
|
|
|
|
CREATE TABLE dbo.myprojectstranslations (
|
|
id INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
|
|
project_id INT NOT NULL,
|
|
culture NVARCHAR(10) NOT NULL,
|
|
title NVARCHAR(255) NULL,
|
|
description NVARCHAR(MAX) NULL,
|
|
CONSTRAINT FK_myprojectstranslations_myprojects
|
|
FOREIGN KEY (project_id) REFERENCES dbo.myprojects(id) ON DELETE CASCADE
|
|
);
|
|
GO
|
|
|
|
CREATE TABLE dbo.projectmedia (
|
|
id INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
|
|
projectid INT NOT NULL,
|
|
mediatype INT NOT NULL, -- 1 = Image, 2 = Iframe
|
|
mediaurl NVARCHAR(1000) NOT NULL,
|
|
sortorder INT NOT NULL DEFAULT 0,
|
|
CONSTRAINT FK_projectmedia_myprojects
|
|
FOREIGN KEY (projectid) REFERENCES dbo.myprojects(id) ON DELETE CASCADE
|
|
);
|
|
GO
|
|
|
|
-- =========================================================
|
|
-- Affiliate Links
|
|
-- =========================================================
|
|
CREATE TABLE dbo.affiliatelinks (
|
|
id INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
|
|
image NVARCHAR(500) NOT NULL,
|
|
title NVARCHAR(200) NOT NULL,
|
|
description NVARCHAR(500) NULL,
|
|
url NVARCHAR(1000) NOT NULL,
|
|
sortorder INT NOT NULL DEFAULT 0
|
|
);
|
|
GO
|
|
|
|
CREATE TABLE dbo.affiliatelinktranslations (
|
|
id INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
|
|
affiliatelink_id INT NOT NULL,
|
|
culture NVARCHAR(10) NOT NULL,
|
|
title NVARCHAR(255) NULL,
|
|
description NVARCHAR(MAX) NULL,
|
|
CONSTRAINT FK_affiliatelinktranslations_affiliatelinks
|
|
FOREIGN KEY (affiliatelink_id) REFERENCES dbo.affiliatelinks(id) ON DELETE CASCADE
|
|
);
|
|
GO
|
|
|
|
-- =========================================================
|
|
-- Social Icons (footer icon row)
|
|
-- =========================================================
|
|
CREATE TABLE dbo.socialicons (
|
|
id INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
|
|
icon NVARCHAR(100) NOT NULL, -- Font Awesome class(es), e.g. "fa-brands fa-github"
|
|
url NVARCHAR(500) NOT NULL,
|
|
sortorder INT NOT NULL DEFAULT 0
|
|
);
|
|
GO
|
|
|
|
-- =========================================================
|
|
-- Site Settings (currently just the wallpaper; single row table)
|
|
-- =========================================================
|
|
CREATE TABLE dbo.sitesettings (
|
|
id INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
|
|
wallpaper NVARCHAR(500) NULL -- public URL of the current wallpaper; NULL = use bundled default
|
|
);
|
|
GO
|
|
|
|
-- =========================================================
|
|
-- Seed data: one admin account so you can log in to /admin
|
|
-- IMPORTANT: change the username/password below before/after running this,
|
|
-- and see the "Security notes" section in README.md - passwords are currently
|
|
-- stored and compared in plain text, so pick something you don't reuse elsewhere.
|
|
-- =========================================================
|
|
INSERT INTO dbo.admins (username, password) VALUES ('admin', 'change-this-password');
|
|
GO
|