gitea init

This commit is contained in:
skryper
2025-10-08 21:28:30 +04:00
commit d4651a423d
2518 changed files with 522832 additions and 0 deletions
@@ -0,0 +1,61 @@
<?php
require_once './db.php';
global $pdo;
/**
* მიგრაცია: add_users_table
* თარიღი: 2025_04_06_030206
*/
// მაგალითი:
//
/**
* მიგრაცია: მაგ. add_vat_column_to_clients
* თარიღი: YYYY_MM_DD_HHMMSS
*/
// ✅ ველის დამატება
// ("ALTER TABLE clients ADD COLUMN vat_number VARCHAR(150)");
// ✅ ველის წაშლა
// ("ALTER TABLE clients DROP COLUMN vat_number");
// ✅ ველის ცვლილება (გახანგრძლივება)
// ("ALTER TABLE clients MODIFY COLUMN email VARCHAR(255)");
// ✅ default მნიშვნელობის დამატება
// ("ALTER TABLE clients ALTER COLUMN currency SET DEFAULT 'USD'");
// ✅ ENUM ველის დამატება
// ("ALTER TABLE clients ADD COLUMN status ENUM('active','inactive') DEFAULT 'active'");
// ✅ ინდექსის დამატება
// ("CREATE INDEX idx_email ON clients(email)");
// ✅ უნიკალური ინდექსი
// ("CREATE UNIQUE INDEX unique_email ON clients(email)");
// ✅ ცხრილის შექმნა
/*
("CREATE TABLE invoices (
id INT AUTO_INCREMENT PRIMARY KEY,
client_id INT,
total DECIMAL(10,2),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)");
*/
// ✅ ცხრილის წაშლა
// ("DROP TABLE invoices");
$pdo->query("CREATE TABLE IF NOT EXISTS users (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
email VARCHAR(150) NOT NULL,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE (email)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;");
@@ -0,0 +1,30 @@
<?php
require_once './db.php';
global $pdo;
$pdo->query("CREATE TABLE IF NOT EXISTS clients (
id INT(11) NOT NULL AUTO_INCREMENT,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
company_name VARCHAR(150) DEFAULT NULL,
vat_number VARCHAR(150) DEFAULT NULL,
email VARCHAR(150) NOT NULL,
password VARCHAR(255) NOT NULL,
address1 VARCHAR(255) DEFAULT NULL,
address2 VARCHAR(255) DEFAULT NULL,
city VARCHAR(100) DEFAULT NULL,
state VARCHAR(100) DEFAULT NULL,
postcode VARCHAR(20) DEFAULT NULL,
country VARCHAR(2) DEFAULT NULL,
phone VARCHAR(50) DEFAULT NULL,
payment_method VARCHAR(50) DEFAULT NULL,
billing_contact VARCHAR(100) DEFAULT NULL,
currency VARCHAR(10) DEFAULT 'USD',
language VARCHAR(10) DEFAULT 'default',
status ENUM('active','inactive') DEFAULT 'active',
client_group VARCHAR(50) DEFAULT 'none',
created_at TIMESTAMP NULL DEFAULT current_timestamp(),
admin_notes TEXT DEFAULT NULL,
PRIMARY KEY (id),
UNIQUE (email)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;");
@@ -0,0 +1,15 @@
<?php
require_once './db.php';
global $pdo;
$pdo->query("CREATE TABLE IF NOT EXISTS `email_logs` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`client_id` INT(11) NOT NULL,
`subject` VARCHAR(255) NULL DEFAULT NULL,
`message` TEXT NULL DEFAULT NULL,
`sent_at` DATETIME NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`) USING BTREE,
INDEX `client_id` (`client_id`) USING BTREE,
CONSTRAINT `email_logs_ibfk_1` FOREIGN KEY (`client_id`) REFERENCES `clients` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
");
@@ -0,0 +1,38 @@
<?php
require_once './db.php';
global $pdo;
// 📨 email_templates ცხრილის შექმნა
$pdo->query("
CREATE TABLE IF NOT EXISTS `email_templates` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL,
`subject` VARCHAR(255) NOT NULL,
`body` TEXT NOT NULL,
`created_at` DATETIME NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
");
// 🧾 invoices ცხრილის შექმნა
$pdo->query("
CREATE TABLE IF NOT EXISTS `invoices` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`invoice_number` VARCHAR(100) DEFAULT NULL,
`client_id` INT(11) NOT NULL,
`description` TEXT DEFAULT NULL,
`payment_method` VARCHAR(100) DEFAULT NULL,
`status` ENUM('დრაფტი','გადაუხდელი','გადასახდელი','გადახდილი','გაუქმებული') NOT NULL DEFAULT 'დრაფტი',
`total_amount` DECIMAL(10,2) NOT NULL DEFAULT '0.00',
`is_recurring` TINYINT(1) DEFAULT '0',
`issue_date` DATE NOT NULL,
`due_date` DATE NOT NULL,
`payment_date` DATE DEFAULT NULL,
`created_at` TIMESTAMP NULL DEFAULT current_timestamp(),
`recurring` TINYINT(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE INDEX `invoice_number` (`invoice_number`),
INDEX `client_id` (`client_id`),
CONSTRAINT `invoices_ibfk_1` FOREIGN KEY (`client_id`) REFERENCES `clients` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
");
@@ -0,0 +1,65 @@
<?php
require_once './db.php';
global $pdo;
// 💳 invoice_items ცხრილის შექმნა
$pdo->query("
CREATE TABLE IF NOT EXISTS `invoice_items` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`invoice_id` INT(11) NOT NULL,
`product_id` INT(11) DEFAULT NULL,
`description` TEXT DEFAULT NULL,
`amount` DECIMAL(10,2) NOT NULL DEFAULT '0.00',
PRIMARY KEY (`id`),
INDEX `invoice_id` (`invoice_id`),
CONSTRAINT `invoice_items_ibfk_1` FOREIGN KEY (`invoice_id`) REFERENCES `invoices` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
");
// 📋 migration_log ცხრილის შექმნა (თუ არ გაქვს უკვე)
$pdo->query("
CREATE TABLE IF NOT EXISTS `migration_log` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`filename` VARCHAR(255) DEFAULT NULL,
`executed_at` DATETIME DEFAULT current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
");
// 📦 products ცხრილის შექმნა
$pdo->query("
CREATE TABLE IF NOT EXISTS `products` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`group` VARCHAR(255) NOT NULL,
`type` VARCHAR(100) DEFAULT NULL,
`pay_type` VARCHAR(100) DEFAULT NULL,
`auto_setup` VARCHAR(100) DEFAULT NULL,
`url` TEXT DEFAULT NULL,
`module` VARCHAR(100) DEFAULT NULL,
`hidden` TINYINT(1) DEFAULT '0',
`created_at` DATETIME DEFAULT current_timestamp(),
`updated_at` DATETIME DEFAULT current_timestamp() ON UPDATE current_timestamp(),
`price` DECIMAL(10,2) NOT NULL DEFAULT '0.00',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
");
// 💰 transactions ცხრილის შექმნა
$pdo->query("
CREATE TABLE IF NOT EXISTS `transactions` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`invoice_id` INT(11) NOT NULL,
`client_id` INT(11) NOT NULL,
`amount` DECIMAL(10,2) NOT NULL,
`method` VARCHAR(100) DEFAULT NULL,
`status` ENUM('success','failed','pending') NOT NULL DEFAULT 'pending',
`notes` TEXT DEFAULT NULL,
`created_at` TIMESTAMP DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
INDEX `invoice_id` (`invoice_id`),
INDEX `client_id` (`client_id`),
CONSTRAINT `transactions_ibfk_1` FOREIGN KEY (`invoice_id`) REFERENCES `invoices` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE,
CONSTRAINT `transactions_ibfk_2` FOREIGN KEY (`client_id`) REFERENCES `clients` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
");