mirror of
git://f0xx.org/ac/ac-ms-tickets
synced 2026-07-29 02:18:09 +03:00
initial
This commit is contained in:
32
sql/migrations/003_tickets.sql
Normal file
32
sql/migrations/003_tickets.sql
Normal file
@@ -0,0 +1,32 @@
|
||||
-- Tickets (tasks / QA / user issues) — same console as crash reports.
|
||||
-- Run: mysql -u root -p androidcast_crashes < sql/migrations/003_tickets.sql
|
||||
|
||||
CREATE TABLE IF NOT EXISTS tickets (
|
||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
company_id INT UNSIGNED NOT NULL DEFAULT 1,
|
||||
device_id BIGINT UNSIGNED NULL,
|
||||
ticket_id VARCHAR(128) NOT NULL,
|
||||
title VARCHAR(256) NOT NULL,
|
||||
brief TEXT NULL,
|
||||
body LONGTEXT NOT NULL,
|
||||
opened_at_ms BIGINT NOT NULL,
|
||||
created_at_ms BIGINT NOT NULL,
|
||||
updated_at_ms BIGINT NOT NULL,
|
||||
owner_username VARCHAR(64) NOT NULL DEFAULT '',
|
||||
verified_by_username VARCHAR(64) NULL,
|
||||
device_model VARCHAR(128) NULL,
|
||||
app_package VARCHAR(128) NULL,
|
||||
app_version VARCHAR(64) NULL,
|
||||
os_name VARCHAR(64) NULL,
|
||||
os_version VARCHAR(128) NULL,
|
||||
rating TINYINT UNSIGNED NOT NULL DEFAULT 0,
|
||||
tags_json LONGTEXT NOT NULL,
|
||||
payload_json LONGTEXT NOT NULL,
|
||||
UNIQUE KEY uq_tickets_ticket_id (ticket_id),
|
||||
KEY idx_tickets_company (company_id),
|
||||
KEY idx_tickets_opened (opened_at_ms),
|
||||
KEY idx_tickets_updated (updated_at_ms),
|
||||
KEY idx_tickets_owner (owner_username),
|
||||
CONSTRAINT fk_tickets_company FOREIGN KEY (company_id) REFERENCES companies (id),
|
||||
CONSTRAINT fk_tickets_device FOREIGN KEY (device_id) REFERENCES devices (id) ON DELETE SET NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
27
sql/migrations/003_tickets.sqlite.sql
Normal file
27
sql/migrations/003_tickets.sqlite.sql
Normal file
@@ -0,0 +1,27 @@
|
||||
CREATE TABLE IF NOT EXISTS tickets (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
company_id INTEGER NOT NULL DEFAULT 1,
|
||||
device_id INTEGER NULL,
|
||||
ticket_id TEXT NOT NULL UNIQUE,
|
||||
title TEXT NOT NULL,
|
||||
brief TEXT,
|
||||
body TEXT NOT NULL,
|
||||
opened_at_ms INTEGER NOT NULL,
|
||||
created_at_ms INTEGER NOT NULL,
|
||||
updated_at_ms INTEGER NOT NULL,
|
||||
owner_username TEXT NOT NULL DEFAULT '',
|
||||
verified_by_username TEXT,
|
||||
device_model TEXT,
|
||||
app_package TEXT,
|
||||
app_version TEXT,
|
||||
os_name TEXT,
|
||||
os_version TEXT,
|
||||
rating INTEGER NOT NULL DEFAULT 0,
|
||||
tags_json TEXT NOT NULL DEFAULT '[]',
|
||||
payload_json TEXT NOT NULL,
|
||||
FOREIGN KEY (company_id) REFERENCES companies(id),
|
||||
FOREIGN KEY (device_id) REFERENCES devices(id) ON DELETE SET NULL
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_tickets_company ON tickets(company_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_tickets_opened ON tickets(opened_at_ms DESC);
|
||||
18
sql/migrations/004_ticket_workflow.sql
Normal file
18
sql/migrations/004_ticket_workflow.sql
Normal file
@@ -0,0 +1,18 @@
|
||||
-- Ticket workflow, assignees, comments. Run as MySQL root on existing DBs.
|
||||
-- mysql -u root -p androidcast_crashes < sql/migrations/004_ticket_workflow.sql
|
||||
|
||||
ALTER TABLE tickets
|
||||
ADD COLUMN workflow_state VARCHAR(32) NOT NULL DEFAULT 'triage' AFTER tags_json,
|
||||
ADD COLUMN assignees_json LONGTEXT NOT NULL DEFAULT '[]' AFTER workflow_state;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ticket_comments (
|
||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
ticket_id BIGINT UNSIGNED NOT NULL,
|
||||
author_username VARCHAR(64) NOT NULL,
|
||||
body LONGTEXT NOT NULL,
|
||||
created_at_ms BIGINT NOT NULL,
|
||||
updated_at_ms BIGINT NOT NULL,
|
||||
KEY idx_ticket_comments_ticket (ticket_id),
|
||||
KEY idx_ticket_comments_created (created_at_ms),
|
||||
CONSTRAINT fk_ticket_comments_ticket FOREIGN KEY (ticket_id) REFERENCES tickets (id) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
20
sql/migrations/005_ticket_attachments.sql
Normal file
20
sql/migrations/005_ticket_attachments.sql
Normal file
@@ -0,0 +1,20 @@
|
||||
-- Ticket attachments: uploaded files + external links (incl. Google URLs).
|
||||
-- mysql -u root -p androidcast_crashes < sql/migrations/005_ticket_attachments.sql
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ticket_attachments (
|
||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
ticket_id BIGINT UNSIGNED NOT NULL,
|
||||
kind ENUM('file', 'link') NOT NULL,
|
||||
title VARCHAR(256) NOT NULL DEFAULT '',
|
||||
external_url TEXT NULL,
|
||||
provider VARCHAR(32) NOT NULL DEFAULT 'generic',
|
||||
storage_name VARCHAR(128) NULL,
|
||||
original_name VARCHAR(256) NULL,
|
||||
mime_type VARCHAR(128) NULL,
|
||||
size_bytes BIGINT UNSIGNED NULL,
|
||||
created_by VARCHAR(64) NOT NULL,
|
||||
created_at_ms BIGINT NOT NULL,
|
||||
KEY idx_ticket_attachments_ticket (ticket_id),
|
||||
KEY idx_ticket_attachments_created (created_at_ms),
|
||||
CONSTRAINT fk_ticket_attachments_ticket FOREIGN KEY (ticket_id) REFERENCES tickets (id) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
Reference in New Issue
Block a user