Files
dashlibstorage/src/schema.js
2026-08-01 03:37:45 +02:00

575 lines
20 KiB
JavaScript

export const INIT_META = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'meta')
BEGIN
CREATE TABLE meta (
[key] NVARCHAR(255) NOT NULL,
value NVARCHAR(MAX) NOT NULL,
CONSTRAINT PK_meta PRIMARY KEY ([key])
);
END
IF NOT EXISTS (SELECT 1 FROM meta WHERE [key] = N'version')
BEGIN
INSERT INTO meta ([key], value)
VALUES (N'version', N'1');
END
`;
export const INIT_GOOGLE_AUTH = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'google_auth')
BEGIN
CREATE TABLE google_auth (
id INT IDENTITY(1,1) PRIMARY KEY,
email NVARCHAR(320) NOT NULL,
created_at DATETIME2 NOT NULL CONSTRAINT DF_google_auth_created_at DEFAULT SYSUTCDATETIME(),
selected_company INT NULL,
CONSTRAINT UQ_google_auth_email UNIQUE (email),
CONSTRAINT FK_google_auth_selected_company FOREIGN KEY (selected_company) REFERENCES company(id) ON DELETE SET NULL
);
END
`;
export const INIT_LANGUAGE = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'language')
BEGIN
CREATE TABLE language (
id INT IDENTITY(1,1) PRIMARY KEY,
iso639 NVARCHAR(10) NOT NULL,
CONSTRAINT UQ_language_iso639 UNIQUE (iso639)
);
END
`;
export const INIT_TAX = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'tax')
BEGIN
CREATE TABLE tax (
id INT IDENTITY(1,1) PRIMARY KEY,
rate DECIMAL(18,4) NOT NULL,
CONSTRAINT UQ_tax_rate UNIQUE (rate)
);
END
IF NOT EXISTS (SELECT 1 FROM tax WHERE rate = 0)
BEGIN
INSERT INTO tax (rate) VALUES (0);
END
IF NOT EXISTS (SELECT 1 FROM tax WHERE rate = 7)
BEGIN
INSERT INTO tax (rate) VALUES (7);
END
IF NOT EXISTS (SELECT 1 FROM tax WHERE rate = 19)
BEGIN
INSERT INTO tax (rate) VALUES (19);
END
`;
export const INIT_CATEGORY = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'category')
BEGIN
CREATE TABLE category (
id INT IDENTITY(1,1) PRIMARY KEY,
parent_id INT NULL,
sort INT NOT NULL CONSTRAINT DF_category_sort DEFAULT 0,
CONSTRAINT FK_category_parent FOREIGN KEY (parent_id) REFERENCES category(id) ON DELETE NO ACTION
);
END
`;
export const INIT_PIC = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'pic')
BEGIN
CREATE TABLE pic (
id INT IDENTITY(1,1) PRIMARY KEY,
w INT NOT NULL,
h INT NOT NULL,
size BIGINT NOT NULL,
hash NVARCHAR(64) NOT NULL,
thumbw INT NOT NULL,
thumbh INT NOT NULL,
thumbhash NVARCHAR(64) NOT NULL,
source NVARCHAR(MAX) NOT NULL,
fullbinary VARBINARY(MAX) NOT NULL,
thumbbinary VARBINARY(MAX) NOT NULL,
CONSTRAINT UQ_pic_hash UNIQUE (hash)
);
END
`;
export const INIT_COMPANY = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'company')
BEGIN
CREATE TABLE company (
id INT IDENTITY(1,1) PRIMARY KEY,
name NVARCHAR(255) NOT NULL,
root_category_id INT NULL,
default_language_id INT NULL,
taxrate INT NULL,
reducedtaxrate INT NULL,
taxfreerate INT NULL,
poscustomergroup_id INT NULL,
CONSTRAINT UQ_company_name UNIQUE (name),
CONSTRAINT FK_company_root_category FOREIGN KEY (root_category_id) REFERENCES category(id) ON DELETE SET NULL,
CONSTRAINT FK_company_default_language FOREIGN KEY (default_language_id) REFERENCES language(id) ON DELETE SET NULL,
CONSTRAINT FK_company_taxrate FOREIGN KEY (taxrate) REFERENCES tax(id) ON DELETE NO ACTION,
CONSTRAINT FK_company_reducedtaxrate FOREIGN KEY (reducedtaxrate) REFERENCES tax(id) ON DELETE NO ACTION,
CONSTRAINT FK_company_taxfreerate FOREIGN KEY (taxfreerate) REFERENCES tax(id) ON DELETE NO ACTION
);
END
`;
export const INIT_CUSTOMERGROUP = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'customergroup')
BEGIN
CREATE TABLE customergroup (
id INT IDENTITY(1,1) PRIMARY KEY,
name NVARCHAR(255) NOT NULL,
company_id INT NOT NULL,
CONSTRAINT FK_customergroup_company FOREIGN KEY (company_id) REFERENCES company(id) ON DELETE CASCADE
);
END
`;
export const INIT_COMPANY_POS_CUSTOMERGROUP_FK = `
IF NOT EXISTS (
SELECT 1 FROM sys.foreign_keys WHERE name = N'FK_company_poscustomergroup'
)
BEGIN
ALTER TABLE company
ADD CONSTRAINT FK_company_poscustomergroup
FOREIGN KEY (poscustomergroup_id) REFERENCES customergroup(id) ON DELETE NO ACTION;
END
`;
export const INIT_ENTITY = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'entity')
BEGIN
CREATE TABLE entity (
id INT IDENTITY(1,1) PRIMARY KEY,
customergroup_id INT NOT NULL,
firstname NVARCHAR(255) NOT NULL,
lastname NVARCHAR(255) NOT NULL,
CONSTRAINT FK_entity_customergroup FOREIGN KEY (customergroup_id) REFERENCES customergroup(id) ON DELETE CASCADE
);
END
`;
export const INIT_UNIT = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'unit')
BEGIN
CREATE TABLE unit (
id INT IDENTITY(1,1) PRIMARY KEY,
si NVARCHAR(50) NOT NULL,
basesi NVARCHAR(50) NOT NULL,
basesifactor FLOAT NOT NULL,
CONSTRAINT UQ_unit_si UNIQUE (si)
);
END
`;
export const INIT_UNITTEXT = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'unittext')
BEGIN
CREATE TABLE unittext (
id INT IDENTITY(1,1) PRIMARY KEY,
unit_id INT NOT NULL,
language_id INT NOT NULL,
symbol NVARCHAR(50) NOT NULL,
name NVARCHAR(255) NOT NULL,
CONSTRAINT FK_unittext_unit FOREIGN KEY (unit_id) REFERENCES unit(id) ON DELETE CASCADE,
CONSTRAINT FK_unittext_language FOREIGN KEY (language_id) REFERENCES language(id) ON DELETE CASCADE,
CONSTRAINT UQ_unittext_unit_language UNIQUE (unit_id, language_id)
);
END
`;
export const INIT_OPTIONSLIST = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'optionslist')
BEGIN
CREATE TABLE optionslist (
id INT IDENTITY(1,1) PRIMARY KEY
);
END
`;
export const INIT_ARTICLELIST = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'articlelist')
BEGIN
CREATE TABLE articlelist (
id INT IDENTITY(1,1) PRIMARY KEY
);
END
`;
export const INIT_BRAND = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'brand')
BEGIN
CREATE TABLE brand (
id INT IDENTITY(1,1) PRIMARY KEY,
name NVARCHAR(255) NOT NULL,
gsprpinfo NVARCHAR(MAX) NULL
);
END
`;
export const INIT_ARTICLE = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'article')
BEGIN
CREATE TABLE article (
id INT IDENTITY(1,1) PRIMARY KEY,
sku NVARCHAR(100) NULL,
unit_id INT NOT NULL,
unitamount FLOAT NOT NULL,
weight FLOAT NOT NULL,
brand_id INT NULL,
articlelist_id INT NULL,
optionslist_id INT NULL,
is_father BIT NOT NULL CONSTRAINT DF_article_is_father DEFAULT 0,
fatherarticle_id INT NULL,
fathersort INT NOT NULL CONSTRAINT DF_article_fathersort DEFAULT 0,
created_at DATETIME2 NOT NULL CONSTRAINT DF_article_created_at DEFAULT SYSUTCDATETIME(),
updated_at DATETIME2 NOT NULL CONSTRAINT DF_article_updated_at DEFAULT SYSUTCDATETIME(),
CONSTRAINT FK_article_unit FOREIGN KEY (unit_id) REFERENCES unit(id) ON DELETE CASCADE,
CONSTRAINT FK_article_brand FOREIGN KEY (brand_id) REFERENCES brand(id) ON DELETE SET NULL,
CONSTRAINT FK_article_articlelist FOREIGN KEY (articlelist_id) REFERENCES articlelist(id) ON DELETE SET NULL,
CONSTRAINT FK_article_optionslist FOREIGN KEY (optionslist_id) REFERENCES optionslist(id) ON DELETE SET NULL,
CONSTRAINT FK_article_fatherarticle FOREIGN KEY (fatherarticle_id) REFERENCES article(id) ON DELETE NO ACTION,
CONSTRAINT UQ_article_sku UNIQUE (sku)
);
-- Only enforce sibling sort uniqueness among children of the same father.
-- (SQL Server UNIQUE treats NULLs as equal, which would block multiple root articles.)
CREATE UNIQUE INDEX UQ_article_fatherarticle_fathersort
ON article (fatherarticle_id, fathersort)
WHERE fatherarticle_id IS NOT NULL;
END
`;
export const INIT_ARTICLEHISTORY = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'articlehistory')
BEGIN
CREATE TABLE articlehistory (
id INT IDENTITY(1,1) PRIMARY KEY,
article_id INT NOT NULL,
[date] DATETIME2 NOT NULL CONSTRAINT DF_articlehistory_date DEFAULT SYSUTCDATETIME(),
[text] NVARCHAR(MAX) NOT NULL,
CONSTRAINT FK_articlehistory_article FOREIGN KEY (article_id) REFERENCES article(id) ON DELETE CASCADE
);
END
`;
export const INIT_ARTICLEEAN = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'articleean')
BEGIN
CREATE TABLE articleean (
id INT IDENTITY(1,1) PRIMARY KEY,
article_id INT NOT NULL,
ean NVARCHAR(50) NOT NULL,
CONSTRAINT FK_articleean_article FOREIGN KEY (article_id) REFERENCES article(id) ON DELETE CASCADE,
CONSTRAINT UQ_articleean_ean UNIQUE (ean)
);
END
`;
export const INIT_ARTICLEPIC = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'articlepic')
BEGIN
CREATE TABLE articlepic (
id INT IDENTITY(1,1) PRIMARY KEY,
article_id INT NOT NULL,
pic_id INT NOT NULL,
sort INT NOT NULL CONSTRAINT DF_articlepic_sort DEFAULT 0,
CONSTRAINT FK_articlepic_article FOREIGN KEY (article_id) REFERENCES article(id) ON DELETE CASCADE,
CONSTRAINT FK_articlepic_pic FOREIGN KEY (pic_id) REFERENCES pic(id) ON DELETE CASCADE,
CONSTRAINT UQ_articlepic_article_pic UNIQUE (article_id, pic_id),
CONSTRAINT UQ_articlepic_article_sort UNIQUE (article_id, sort)
);
END
`;
export const INIT_BRANDPIC = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'brandpic')
BEGIN
CREATE TABLE brandpic (
id INT IDENTITY(1,1) PRIMARY KEY,
brand_id INT NOT NULL,
pic_id INT NOT NULL,
sort INT NOT NULL CONSTRAINT DF_brandpic_sort DEFAULT 0,
CONSTRAINT FK_brandpic_brand FOREIGN KEY (brand_id) REFERENCES brand(id) ON DELETE CASCADE,
CONSTRAINT FK_brandpic_pic FOREIGN KEY (pic_id) REFERENCES pic(id) ON DELETE CASCADE,
CONSTRAINT UQ_brandpic_brand_pic UNIQUE (brand_id, pic_id),
CONSTRAINT UQ_brandpic_brand_sort UNIQUE (brand_id, sort)
);
END
`;
export const INIT_ARTICLELISTARTICLE = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'articlelistarticle')
BEGIN
CREATE TABLE articlelistarticle (
id INT IDENTITY(1,1) PRIMARY KEY,
articlelist_id INT NOT NULL,
article_id INT NOT NULL,
count INT NOT NULL CONSTRAINT DF_articlelistarticle_count DEFAULT 1,
sort INT NOT NULL CONSTRAINT DF_articlelistarticle_sort DEFAULT 0,
CONSTRAINT FK_articlelistarticle_articlelist FOREIGN KEY (articlelist_id) REFERENCES articlelist(id) ON DELETE CASCADE,
CONSTRAINT FK_articlelistarticle_article FOREIGN KEY (article_id) REFERENCES article(id) ON DELETE CASCADE,
CONSTRAINT UQ_articlelistarticle_articlelist_article UNIQUE (articlelist_id, article_id),
CONSTRAINT UQ_articlelistarticle_articlelist_sort UNIQUE (articlelist_id, sort)
);
END
`;
export const INIT_OPTIONSLISTARTICLE = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'optionslistarticle')
BEGIN
CREATE TABLE optionslistarticle (
id INT IDENTITY(1,1) PRIMARY KEY,
optionslist_id INT NOT NULL,
article_id INT NOT NULL,
count INT NOT NULL CONSTRAINT DF_optionslistarticle_count DEFAULT 1,
sort INT NOT NULL CONSTRAINT DF_optionslistarticle_sort DEFAULT 0,
mandated BIT NOT NULL CONSTRAINT DF_optionslistarticle_mandated DEFAULT 0,
CONSTRAINT FK_optionslistarticle_optionslist FOREIGN KEY (optionslist_id) REFERENCES optionslist(id) ON DELETE CASCADE,
CONSTRAINT FK_optionslistarticle_article FOREIGN KEY (article_id) REFERENCES article(id) ON DELETE CASCADE,
CONSTRAINT UQ_optionslistarticle_optionslist_article UNIQUE (optionslist_id, article_id),
CONSTRAINT UQ_optionslistarticle_optionslist_sort UNIQUE (optionslist_id, sort)
);
END
`;
export const INIT_CATEGORYARTICLE = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'categoryarticle')
BEGIN
CREATE TABLE categoryarticle (
id INT IDENTITY(1,1) PRIMARY KEY,
category_id INT NOT NULL,
article_id INT NOT NULL,
CONSTRAINT FK_categoryarticle_category FOREIGN KEY (category_id) REFERENCES category(id) ON DELETE NO ACTION,
CONSTRAINT FK_categoryarticle_article FOREIGN KEY (article_id) REFERENCES article(id) ON DELETE CASCADE,
CONSTRAINT UQ_categoryarticle_category_article UNIQUE (category_id, article_id)
);
END
`;
export const INIT_CATEGORYPIC = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'categorypic')
BEGIN
CREATE TABLE categorypic (
id INT IDENTITY(1,1) PRIMARY KEY,
category_id INT NOT NULL,
pic_id INT NOT NULL,
sort INT NOT NULL CONSTRAINT DF_categorypic_sort DEFAULT 0,
CONSTRAINT FK_categorypic_category FOREIGN KEY (category_id) REFERENCES category(id) ON DELETE CASCADE,
CONSTRAINT FK_categorypic_pic FOREIGN KEY (pic_id) REFERENCES pic(id) ON DELETE CASCADE,
CONSTRAINT UQ_categorypic_category_pic UNIQUE (category_id, pic_id),
CONSTRAINT UQ_categorypic_category_sort UNIQUE (category_id, sort)
);
END
`;
export const INIT_CATEGORYTEXT = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'categorytext')
BEGIN
CREATE TABLE categorytext (
id INT IDENTITY(1,1) PRIMARY KEY,
category_id INT NOT NULL,
language_id INT NOT NULL,
name NVARCHAR(255) NOT NULL,
slug NVARCHAR(255) NOT NULL,
seo NVARCHAR(MAX) NULL,
[desc] NVARCHAR(MAX) NULL,
CONSTRAINT FK_categorytext_category FOREIGN KEY (category_id) REFERENCES category(id) ON DELETE CASCADE,
CONSTRAINT FK_categorytext_language FOREIGN KEY (language_id) REFERENCES language(id) ON DELETE CASCADE,
CONSTRAINT UQ_categorytext_category_language UNIQUE (category_id, language_id)
);
END
`;
export const INIT_ARTICLENAME = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'articletext')
BEGIN
CREATE TABLE articletext (
id INT IDENTITY(1,1) PRIMARY KEY,
article_id INT NOT NULL,
language_id INT NOT NULL,
name NVARCHAR(255) NOT NULL,
slug NVARCHAR(255) NOT NULL,
seo NVARCHAR(MAX) NULL,
[desc] NVARCHAR(MAX) NULL,
CONSTRAINT FK_articletext_article FOREIGN KEY (article_id) REFERENCES article(id) ON DELETE CASCADE,
CONSTRAINT FK_articletext_language FOREIGN KEY (language_id) REFERENCES language(id) ON DELETE CASCADE,
CONSTRAINT UQ_articletext_article_language UNIQUE (article_id, language_id)
);
END
`;
export const INIT_PRICE = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'price')
BEGIN
CREATE TABLE price (
id INT IDENTITY(1,1) PRIMARY KEY,
tax_id INT NOT NULL,
article_id INT NOT NULL,
minmultiplier DECIMAL(18,4) NOT NULL CONSTRAINT DF_price_minmultiplier DEFAULT 1,
customergroup_id INT NOT NULL,
net FLOAT NOT NULL,
CONSTRAINT FK_price_tax FOREIGN KEY (tax_id) REFERENCES tax(id) ON DELETE CASCADE,
CONSTRAINT FK_price_article FOREIGN KEY (article_id) REFERENCES article(id) ON DELETE CASCADE,
CONSTRAINT FK_price_customergroup FOREIGN KEY (customergroup_id) REFERENCES customergroup(id) ON DELETE CASCADE
);
END
`;
export const INIT_MANIFEST = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'manifest')
BEGIN
CREATE TABLE manifest (
id INT IDENTITY(1,1) PRIMARY KEY,
[number] NVARCHAR(100) NOT NULL,
[type] NVARCHAR(100) NOT NULL,
[date] DATETIME2 NOT NULL CONSTRAINT DF_manifest_date DEFAULT SYSUTCDATETIME()
);
END
`;
export const INIT_MANIFESTARTICLE = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'manifestarticle')
BEGIN
CREATE TABLE manifestarticle (
id INT IDENTITY(1,1) PRIMARY KEY,
manifest_id INT NOT NULL,
article_id INT NULL,
amount FLOAT NOT NULL,
net FLOAT NOT NULL,
transactedamount FLOAT NOT NULL,
comment NVARCHAR(MAX) NULL,
rebate FLOAT NOT NULL CONSTRAINT DF_manifestarticle_rebate DEFAULT 0,
tax_id INT NOT NULL,
CONSTRAINT FK_manifestarticle_manifest FOREIGN KEY (manifest_id) REFERENCES manifest(id) ON DELETE CASCADE,
CONSTRAINT FK_manifestarticle_article FOREIGN KEY (article_id) REFERENCES article(id) ON DELETE SET NULL,
CONSTRAINT FK_manifestarticle_tax FOREIGN KEY (tax_id) REFERENCES tax(id) ON DELETE CASCADE
);
END
`;
export const INIT_NUMBERS = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'numbers')
BEGIN
CREATE TABLE numbers (
id INT IDENTITY(1,1) PRIMARY KEY,
company_id INT NOT NULL,
[type] NVARCHAR(100) NOT NULL,
prefix NVARCHAR(50) NOT NULL CONSTRAINT DF_numbers_prefix DEFAULT '',
padding INT NOT NULL CONSTRAINT DF_numbers_padding DEFAULT 0,
[next] INT NOT NULL CONSTRAINT DF_numbers_next DEFAULT 1,
CONSTRAINT FK_numbers_company FOREIGN KEY (company_id) REFERENCES company(id) ON DELETE CASCADE,
CONSTRAINT UQ_numbers_company_type UNIQUE (company_id, [type])
);
END
`;
// EXEC dbo.getnextnumberwithprefixandpadding
// @company_id = 1, @type = N'articlesku', @value = @sku OUTPUT;
export const INIT_GET_NEXT_NUMBER_WITH_PREFIX_AND_PADDING = `
IF OBJECT_ID(N'dbo.getnextnumberwithprefixandpadding', N'P') IS NOT NULL
DROP PROCEDURE dbo.getnextnumberwithprefixandpadding;
EXEC('
CREATE PROCEDURE dbo.getnextnumberwithprefixandpadding
@company_id INT,
@type NVARCHAR(100),
@value NVARCHAR(100) OUTPUT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @seq TABLE (prefix NVARCHAR(50), padding INT, num INT);
UPDATE n
SET [next] = [next] + 1
OUTPUT INSERTED.prefix, INSERTED.padding, DELETED.[next]
INTO @seq(prefix, padding, num)
FROM numbers n WITH (UPDLOCK, ROWLOCK)
WHERE n.company_id = @company_id AND n.[type] = @type;
IF @@ROWCOUNT = 0
THROW 50000, ''Number type not found for company'', 1;
SELECT @value = prefix + CASE
WHEN padding > 0 THEN RIGHT(REPLICATE(''0'', padding) + CAST(num AS NVARCHAR(20)), padding)
ELSE CAST(num AS NVARCHAR(20))
END
FROM @seq;
END
');
`;
export const INIT_COMPANYUSER = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'companyuser')
BEGIN
CREATE TABLE companyuser (
id INT IDENTITY(1,1) PRIMARY KEY,
google_auth_id INT NOT NULL,
company_id INT NOT NULL,
CONSTRAINT UQ_companyuser_google_auth_company UNIQUE (google_auth_id, company_id),
CONSTRAINT FK_companyuser_google_auth FOREIGN KEY (google_auth_id) REFERENCES google_auth(id) ON DELETE CASCADE,
CONSTRAINT FK_companyuser_company FOREIGN KEY (company_id) REFERENCES company(id) ON DELETE CASCADE
);
END
`;
export const INIT_SYNCPOS = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'syncpos')
BEGIN
CREATE TABLE syncpos (
id INT IDENTITY(1,1) PRIMARY KEY,
company_id INT NOT NULL,
paircode NVARCHAR(50) NOT NULL,
token NVARCHAR(255) NULL,
CONSTRAINT FK_syncpos_company FOREIGN KEY (company_id) REFERENCES company(id) ON DELETE CASCADE,
CONSTRAINT UQ_syncpos_paircode UNIQUE (paircode),
CONSTRAINT UQ_syncpos_token UNIQUE (token)
);
END
`;
/** DDL scripts in dependency order for schema init. */
export const SCHEMA_SCRIPTS = [
INIT_META,
INIT_LANGUAGE,
INIT_TAX,
INIT_CATEGORY,
INIT_PIC,
INIT_COMPANY,
INIT_GOOGLE_AUTH,
INIT_CUSTOMERGROUP,
INIT_COMPANY_POS_CUSTOMERGROUP_FK,
INIT_ENTITY,
INIT_UNIT,
INIT_UNITTEXT,
INIT_OPTIONSLIST,
INIT_ARTICLELIST,
INIT_BRAND,
INIT_ARTICLE,
INIT_ARTICLEHISTORY,
INIT_ARTICLEEAN,
INIT_ARTICLEPIC,
INIT_BRANDPIC,
INIT_ARTICLELISTARTICLE,
INIT_OPTIONSLISTARTICLE,
INIT_CATEGORYARTICLE,
INIT_CATEGORYPIC,
INIT_CATEGORYTEXT,
INIT_ARTICLENAME,
INIT_PRICE,
INIT_MANIFEST,
INIT_MANIFESTARTICLE,
INIT_NUMBERS,
INIT_GET_NEXT_NUMBER_WITH_PREFIX_AND_PADDING,
INIT_COMPANYUSER,
INIT_SYNCPOS,
];