├── README.md └── savejs /README.md: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import "something..." 4 | 5 | -------------------------------------------------------------------------------- /savejs: -------------------------------------------------------------------------------- 1 | CREATE TABLE IF NOT EXISTS customers ( 2 | id BIGSERIAL PRIMARY KEY, 3 | name TEXT NOT NULL CHECK (length(btrim(name)) BETWEEN 2 AND 100), 4 | phone TEXT NOT NULL, -- +31..., +7..., и т.п. 5 | email TEXT, -- опционально 6 | tg_handle TEXT, -- @username 7 | notes TEXT, -- комментарии администратора 8 | created_at TIMESTAMPTZ NOT NULL DEFAULT now() 9 | ); 10 | 11 | -- Уникальные ограничения (частичные — только если поле заполнено) 12 | CREATE UNIQUE INDEX IF NOT EXISTS uq_customers_phone 13 | ON customers (phone); 14 | 15 | CREATE UNIQUE INDEX IF NOT EXISTS uq_customers_email 16 | ON customers (lower(email)) 17 | WHERE email IS NOT NULL; 18 | 19 | CREATE UNIQUE INDEX IF NOT EXISTS uq_customers_tg_handle 20 | ON customers (lower(tg_handle)) 21 | WHERE tg_handle IS NOT NULL; 22 | 23 | -- Ускорение поиска по имени/телефону (простые btree индексы) 24 | CREATE INDEX IF NOT EXISTS idx_customers_name 25 | ON customers (lower(name)); 26 | --------------------------------------------------------------------------------