move yclients migration
This commit is contained in:
parent
3c4b860f40
commit
b91f57578e
@ -1,12 +0,0 @@
|
|||||||
DROP TABLE If EXISTS YclientsTokens;
|
|
||||||
DROP TABLE If EXISTS YclientsAccounts;
|
|
||||||
DROP TABLE If EXISTS YclientsAccountUsers;
|
|
||||||
-- DROP TABLE If EXISTS YclientsCompany;
|
|
||||||
DROP TABLE If EXISTS YclientsServices;
|
|
||||||
DROP TABLE If EXISTS YclientsTimeSlots;
|
|
||||||
DROP TABLE If EXISTS YclientsRules;
|
|
||||||
DROP TABLE If EXISTS YclientsFields;
|
|
||||||
DROP TABLE If EXISTS YclientsCRMStatuses;
|
|
||||||
|
|
||||||
DROP INDEX if EXISTS idx_unique_tokens_yclients;
|
|
||||||
DROP INDEX if EXISTS idx_unique_yclients_rules;
|
|
||||||
@ -1,157 +0,0 @@
|
|||||||
|
|
||||||
DO $$
|
|
||||||
BEGIN
|
|
||||||
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'CustomFieldsTypeYclients') THEN
|
|
||||||
CREATE TYPE CustomFieldsTypeYclients AS ENUM (
|
|
||||||
'text',
|
|
||||||
'number',
|
|
||||||
'select',
|
|
||||||
'date',
|
|
||||||
'datetime'
|
|
||||||
);
|
|
||||||
END IF;
|
|
||||||
END $$;
|
|
||||||
|
|
||||||
DO $$
|
|
||||||
BEGIN
|
|
||||||
IF NOT EXISTS (
|
|
||||||
SELECT 1 FROM pg_enum
|
|
||||||
WHERE enumlabel = 'yclients_staff_id' AND enumtypid = 'question_type'::regtype
|
|
||||||
) THEN
|
|
||||||
ALTER TYPE question_type ADD VALUE 'yclients_staff_id';
|
|
||||||
END IF;
|
|
||||||
END $$;
|
|
||||||
|
|
||||||
DO $$
|
|
||||||
BEGIN
|
|
||||||
IF NOT EXISTS (
|
|
||||||
SELECT 1 FROM pg_enum
|
|
||||||
WHERE enumlabel = 'yclients_services' AND enumtypid = 'question_type'::regtype
|
|
||||||
) THEN
|
|
||||||
ALTER TYPE question_type ADD VALUE 'yclients_services';
|
|
||||||
END IF;
|
|
||||||
END $$;
|
|
||||||
|
|
||||||
DO $$
|
|
||||||
BEGIN
|
|
||||||
IF NOT EXISTS (
|
|
||||||
SELECT 1 FROM pg_enum
|
|
||||||
WHERE enumlabel = 'yclients_comment' AND enumtypid = 'question_type'::regtype
|
|
||||||
) THEN
|
|
||||||
ALTER TYPE question_type ADD VALUE 'yclients_comment';
|
|
||||||
END IF;
|
|
||||||
END $$;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS YclientsTokens (
|
|
||||||
AccountID VARCHAR(30) PRIMARY KEY,
|
|
||||||
SalonID int not null, -- ID компании
|
|
||||||
AccessToken TEXT NOT NULL DEFAULT '',
|
|
||||||
Active BOOLEAN NOT NULL DEFAULT FALSE,
|
|
||||||
Expiration BOOLEAN NOT NULL DEFAULT FALSE, -- флаг истек ли токен
|
|
||||||
CreatedAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
||||||
);
|
|
||||||
|
|
||||||
create UNIQUE INDEX idx_unique_tokens_yclients ON YclientsTokens (SalonID, AccountID) WHERE Active = true and Expiration = false;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS YclientsAccounts (
|
|
||||||
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
|
|
||||||
AccountID VARCHAR(30) NOT NULL DEFAULT '', -- ID аккаунта у нас
|
|
||||||
SalonID INT NOT NULL, -- ID компании
|
|
||||||
Title text NOT NULL DEFAULT '',
|
|
||||||
ShortDecription text NOT NULL DEFAULT '',
|
|
||||||
Country VARCHAR(50) NOT NULL DEFAULT '',
|
|
||||||
Deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
|
||||||
CreatedAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS YclientsAccountUsers (
|
|
||||||
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
|
|
||||||
SalonID INT NOT NULL, -- ID компании
|
|
||||||
YclientsID INT NOT NULL, -- ID пользователя в Yclients
|
|
||||||
Name VARCHAR(512) NOT NULL DEFAULT '',
|
|
||||||
Specialization text NOT NULL DEFAULT '',
|
|
||||||
IDPosition int not null default 0,
|
|
||||||
TitlePosition text not null default 0,
|
|
||||||
Fired BOOLEAN not null default false, -- Уволен ли сотрудник
|
|
||||||
Status BOOLEAN not null default false, -- Удален ли сотрудник
|
|
||||||
Hidden BOOLEAN not null default false, -- Скрыт ли сотрудник для онлайн-записи
|
|
||||||
YclientsUserID INT NOT NULL, -- ID пользователя в Yclients2
|
|
||||||
Deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
|
||||||
CreatedAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
||||||
);
|
|
||||||
|
|
||||||
-- CREATE TABLE IF NOT EXISTS YclientsCompany (
|
|
||||||
-- ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
|
|
||||||
-- SalonID INT NOT NULL, -- ID компании
|
|
||||||
-- Title text NOT NULL,
|
|
||||||
-- ShortDecription text NOT NULL,
|
|
||||||
-- Active INT NOT NULL,
|
|
||||||
-- Country text NOT NULL,
|
|
||||||
-- GroupPriority INT NOT NULL,
|
|
||||||
-- Deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
|
||||||
-- CreatedAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
||||||
-- );
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS YclientsServices (
|
|
||||||
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
|
|
||||||
SalonID INT NOT NULL, -- ID компании
|
|
||||||
ServiceID INT NOT NULL,
|
|
||||||
SalonServiceID INT NOT NULL,
|
|
||||||
Title text NOT NULL,
|
|
||||||
CategoryID INT NOT NULL,
|
|
||||||
PriceMin text NOT NULL,
|
|
||||||
PriceMax text NOT NULL,
|
|
||||||
Discount text NOT NULL,
|
|
||||||
Comment text NOT NULL,
|
|
||||||
Active BOOLEAN not null default false,
|
|
||||||
ApiID text NOT NULL,
|
|
||||||
Staff JSONB NOT NULL DEFAULT '{}',
|
|
||||||
Deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
|
||||||
CreatedAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS YclientsTimeSlots (
|
|
||||||
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
|
|
||||||
SalonID INT NOT NULL, -- ID компании
|
|
||||||
IsEnabled BOOLEAN NOT NULL DEFAULT false,
|
|
||||||
WeekdaysSettings JSONB NOT NULL DEFAULT '[]',
|
|
||||||
DatesSettings JSONB NOT NULL DEFAULT '{}',
|
|
||||||
Deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
|
||||||
CreatedAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS YclientsRules (
|
|
||||||
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
|
|
||||||
SalonID INT NOT NULL, -- ID компании
|
|
||||||
QuizID INT NOT NULL, -- ID квиза на которое вешается правило
|
|
||||||
StaffID INT NOT NULL,
|
|
||||||
Services JSONB NOT NULL DEFAULT '{}',
|
|
||||||
FieldsRule JSONB NOT NULL DEFAULT '{}',
|
|
||||||
CustomColor text NOT NULL Default '',
|
|
||||||
Deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
|
||||||
CreatedAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS YclientsFields (
|
|
||||||
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
|
|
||||||
YclientsID INT NOT NULL, -- Айдишник field в Yclients
|
|
||||||
SalonID INT NOT NULL, -- ID компании
|
|
||||||
FieldType CustomFieldsTypeYclients NOT NULL, -- тип поля
|
|
||||||
Code text NOT NULL,
|
|
||||||
Title text NOT NULL,
|
|
||||||
ShowInUI BOOLEAN NOT NULL DEFAULT FALSE,
|
|
||||||
UserCanEdit BOOLEAN NOT NULL DEFAULT FALSE,
|
|
||||||
Deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
|
||||||
CreatedAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS YclientsCRMStatuses (
|
|
||||||
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
|
|
||||||
AnswerID BIGINT NOT NULL,
|
|
||||||
SalonID INT NOT NULL,
|
|
||||||
RecordID INT NOT NULL DEFAULT 0, -- ID созданной записи в YClients
|
|
||||||
Status TEXT NOT NULL DEFAULT '', -- запись о ошибке, либо успехе
|
|
||||||
CreatedAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE UNIQUE INDEX idx_unique_yclients_rules ON YclientsRules (SalonID, QuizID) WHERE Deleted = false;
|
|
||||||
@ -1,26 +1,12 @@
|
|||||||
CREATE TABLE IF NOT EXISTS YclientsTokens (
|
DROP TABLE If EXISTS YclientsTokens;
|
||||||
AccountID VARCHAR(30) PRIMARY KEY,
|
DROP TABLE If EXISTS YclientsAccounts;
|
||||||
SalonID int not null, -- ID компании
|
DROP TABLE If EXISTS YclientsAccountUsers;
|
||||||
AccessToken TEXT NOT NULL DEFAULT '',
|
-- DROP TABLE If EXISTS YclientsCompany;
|
||||||
Active BOOLEAN NOT NULL DEFAULT FALSE,
|
DROP TABLE If EXISTS YclientsServices;
|
||||||
Expiration BOOLEAN NOT NULL DEFAULT FALSE, -- флаг истек ли токен
|
DROP TABLE If EXISTS YclientsTimeSlots;
|
||||||
CreatedAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
DROP TABLE If EXISTS YclientsRules;
|
||||||
);
|
DROP TABLE If EXISTS YclientsFields;
|
||||||
|
DROP TABLE If EXISTS YclientsCRMStatuses;
|
||||||
|
|
||||||
create UNIQUE INDEX idx_unique_tokens_yclients ON YclientsTokens (SalonID, AccountID) WHERE Active = true and Expiration = false;
|
DROP INDEX if EXISTS idx_unique_tokens_yclients;
|
||||||
|
DROP INDEX if EXISTS idx_unique_yclients_rules;
|
||||||
ALTER TABLE YclientsAccounts
|
|
||||||
ADD COLUMN IF NOT EXISTS ShortDecription text NOT NULL DEFAULT '',
|
|
||||||
ADD COLUMN IF NOT EXISTS Country VARCHAR(50) NOT NULL DEFAULT '';
|
|
||||||
|
|
||||||
ALTER TABLE YclientsTimeSlots
|
|
||||||
ALTER COLUMN DatesSettings SET DEFAULT '{}'::jsonb;
|
|
||||||
|
|
||||||
UPDATE YclientsTimeSlots
|
|
||||||
SET DatesSettings = '{}'::jsonb
|
|
||||||
WHERE DatesSettings = '[]'::jsonb;
|
|
||||||
|
|
||||||
ALTER TABLE YclientsServices
|
|
||||||
ALTER COLUMN PriceMin TYPE TEXT,
|
|
||||||
ALTER COLUMN PriceMax TYPE TEXT,
|
|
||||||
ALTER COLUMN Discount TYPE TEXT;
|
|
||||||
@ -1,18 +1,157 @@
|
|||||||
DROP INDEX if EXISTS idx_unique_tokens_yclients;
|
|
||||||
DROP TABLE IF EXISTS YclientsTokens;
|
|
||||||
|
|
||||||
ALTER TABLE YclientsAccounts
|
DO $$
|
||||||
DROP COLUMN IF EXISTS ShortDecription,
|
BEGIN
|
||||||
DROP COLUMN IF EXISTS Country;
|
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'CustomFieldsTypeYclients') THEN
|
||||||
|
CREATE TYPE CustomFieldsTypeYclients AS ENUM (
|
||||||
|
'text',
|
||||||
|
'number',
|
||||||
|
'select',
|
||||||
|
'date',
|
||||||
|
'datetime'
|
||||||
|
);
|
||||||
|
END IF;
|
||||||
|
END $$;
|
||||||
|
|
||||||
ALTER TABLE YclientsTimeSlots
|
DO $$
|
||||||
ALTER COLUMN DatesSettings SET DEFAULT '[]'::jsonb;
|
BEGIN
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT 1 FROM pg_enum
|
||||||
|
WHERE enumlabel = 'yclients_staff_id' AND enumtypid = 'question_type'::regtype
|
||||||
|
) THEN
|
||||||
|
ALTER TYPE question_type ADD VALUE 'yclients_staff_id';
|
||||||
|
END IF;
|
||||||
|
END $$;
|
||||||
|
|
||||||
UPDATE YclientsTimeSlots
|
DO $$
|
||||||
SET DatesSettings = '[]'::jsonb
|
BEGIN
|
||||||
WHERE DatesSettings = '{}'::jsonb;
|
IF NOT EXISTS (
|
||||||
|
SELECT 1 FROM pg_enum
|
||||||
|
WHERE enumlabel = 'yclients_services' AND enumtypid = 'question_type'::regtype
|
||||||
|
) THEN
|
||||||
|
ALTER TYPE question_type ADD VALUE 'yclients_services';
|
||||||
|
END IF;
|
||||||
|
END $$;
|
||||||
|
|
||||||
ALTER TABLE YclientsServices
|
DO $$
|
||||||
ALTER COLUMN PriceMin TYPE FLOAT USING NULLIF(PriceMin, '')::FLOAT,
|
BEGIN
|
||||||
ALTER COLUMN PriceMax TYPE FLOAT USING NULLIF(PriceMax, '')::FLOAT,
|
IF NOT EXISTS (
|
||||||
ALTER COLUMN Discount TYPE INT USING NULLIF(Discount, '')::INT;
|
SELECT 1 FROM pg_enum
|
||||||
|
WHERE enumlabel = 'yclients_comment' AND enumtypid = 'question_type'::regtype
|
||||||
|
) THEN
|
||||||
|
ALTER TYPE question_type ADD VALUE 'yclients_comment';
|
||||||
|
END IF;
|
||||||
|
END $$;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS YclientsTokens (
|
||||||
|
AccountID VARCHAR(30) PRIMARY KEY,
|
||||||
|
SalonID int not null, -- ID компании
|
||||||
|
AccessToken TEXT NOT NULL DEFAULT '',
|
||||||
|
Active BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
|
Expiration BOOLEAN NOT NULL DEFAULT FALSE, -- флаг истек ли токен
|
||||||
|
CreatedAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
create UNIQUE INDEX idx_unique_tokens_yclients ON YclientsTokens (SalonID, AccountID) WHERE Active = true and Expiration = false;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS YclientsAccounts (
|
||||||
|
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
|
||||||
|
AccountID VARCHAR(30) NOT NULL DEFAULT '', -- ID аккаунта у нас
|
||||||
|
SalonID INT NOT NULL, -- ID компании
|
||||||
|
Title text NOT NULL DEFAULT '',
|
||||||
|
ShortDecription text NOT NULL DEFAULT '',
|
||||||
|
Country VARCHAR(50) NOT NULL DEFAULT '',
|
||||||
|
Deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
|
CreatedAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS YclientsAccountUsers (
|
||||||
|
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
|
||||||
|
SalonID INT NOT NULL, -- ID компании
|
||||||
|
YclientsID INT NOT NULL, -- ID пользователя в Yclients
|
||||||
|
Name VARCHAR(512) NOT NULL DEFAULT '',
|
||||||
|
Specialization text NOT NULL DEFAULT '',
|
||||||
|
IDPosition int not null default 0,
|
||||||
|
TitlePosition text not null default 0,
|
||||||
|
Fired BOOLEAN not null default false, -- Уволен ли сотрудник
|
||||||
|
Status BOOLEAN not null default false, -- Удален ли сотрудник
|
||||||
|
Hidden BOOLEAN not null default false, -- Скрыт ли сотрудник для онлайн-записи
|
||||||
|
YclientsUserID INT NOT NULL, -- ID пользователя в Yclients2
|
||||||
|
Deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
|
CreatedAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CREATE TABLE IF NOT EXISTS YclientsCompany (
|
||||||
|
-- ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
|
||||||
|
-- SalonID INT NOT NULL, -- ID компании
|
||||||
|
-- Title text NOT NULL,
|
||||||
|
-- ShortDecription text NOT NULL,
|
||||||
|
-- Active INT NOT NULL,
|
||||||
|
-- Country text NOT NULL,
|
||||||
|
-- GroupPriority INT NOT NULL,
|
||||||
|
-- Deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
|
-- CreatedAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
-- );
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS YclientsServices (
|
||||||
|
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
|
||||||
|
SalonID INT NOT NULL, -- ID компании
|
||||||
|
ServiceID INT NOT NULL,
|
||||||
|
SalonServiceID INT NOT NULL,
|
||||||
|
Title text NOT NULL,
|
||||||
|
CategoryID INT NOT NULL,
|
||||||
|
PriceMin text NOT NULL,
|
||||||
|
PriceMax text NOT NULL,
|
||||||
|
Discount text NOT NULL,
|
||||||
|
Comment text NOT NULL,
|
||||||
|
Active BOOLEAN not null default false,
|
||||||
|
ApiID text NOT NULL,
|
||||||
|
Staff JSONB NOT NULL DEFAULT '{}',
|
||||||
|
Deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
|
CreatedAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS YclientsTimeSlots (
|
||||||
|
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
|
||||||
|
SalonID INT NOT NULL, -- ID компании
|
||||||
|
IsEnabled BOOLEAN NOT NULL DEFAULT false,
|
||||||
|
WeekdaysSettings JSONB NOT NULL DEFAULT '[]',
|
||||||
|
DatesSettings JSONB NOT NULL DEFAULT '{}',
|
||||||
|
Deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
|
CreatedAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS YclientsRules (
|
||||||
|
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
|
||||||
|
SalonID INT NOT NULL, -- ID компании
|
||||||
|
QuizID INT NOT NULL, -- ID квиза на которое вешается правило
|
||||||
|
StaffID INT NOT NULL,
|
||||||
|
Services JSONB NOT NULL DEFAULT '{}',
|
||||||
|
FieldsRule JSONB NOT NULL DEFAULT '{}',
|
||||||
|
CustomColor text NOT NULL Default '',
|
||||||
|
Deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
|
CreatedAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS YclientsFields (
|
||||||
|
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
|
||||||
|
YclientsID INT NOT NULL, -- Айдишник field в Yclients
|
||||||
|
SalonID INT NOT NULL, -- ID компании
|
||||||
|
FieldType CustomFieldsTypeYclients NOT NULL, -- тип поля
|
||||||
|
Code text NOT NULL,
|
||||||
|
Title text NOT NULL,
|
||||||
|
ShowInUI BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
|
UserCanEdit BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
|
Deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
|
CreatedAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS YclientsCRMStatuses (
|
||||||
|
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
|
||||||
|
AnswerID BIGINT NOT NULL,
|
||||||
|
SalonID INT NOT NULL,
|
||||||
|
RecordID INT NOT NULL DEFAULT 0, -- ID созданной записи в YClients
|
||||||
|
Status TEXT NOT NULL DEFAULT '', -- запись о ошибке, либо успехе
|
||||||
|
CreatedAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX idx_unique_yclients_rules ON YclientsRules (SalonID, QuizID) WHERE Deleted = false;
|
||||||
Loading…
Reference in New Issue
Block a user