Preparation for individual registrar pricing

This commit is contained in:
Pinga 2024-07-28 18:04:28 +03:00
parent 7bdf47e1ad
commit 52409dcfbd
3 changed files with 29 additions and 25 deletions

View file

@ -892,11 +892,11 @@ class SystemController extends Controller
[ $args ]); [ $args ]);
if ($tld) { if ($tld) {
$createPrices = $db->selectRow('SELECT * FROM domain_price WHERE tldid = ? AND command = ?', [$tld['id'], 'create']); $createPrices = $db->selectRow('SELECT * FROM domain_price WHERE tldid = ? AND registrar_id = ? AND command = ?', [$tld['id'], NULL, 'create']);
$renewPrices = $db->selectRow('SELECT * FROM domain_price WHERE tldid = ? AND command = ?', [$tld['id'], 'renew']); $renewPrices = $db->selectRow('SELECT * FROM domain_price WHERE tldid = ? AND registrar_id = ? AND command = ?', [$tld['id'], NULL, 'renew']);
$transferPrices = $db->selectRow('SELECT * FROM domain_price WHERE tldid = ? AND command = ?', [$tld['id'], 'transfer']); $transferPrices = $db->selectRow('SELECT * FROM domain_price WHERE tldid = ? AND registrar_id = ? AND command = ?', [$tld['id'], NULL, 'transfer']);
$tld_restore = $db->selectRow('SELECT * FROM domain_restore_price WHERE tldid = ?', $tld_restore = $db->selectRow('SELECT * FROM domain_restore_price WHERE tldid = ? AND registrar_id = ? ',
[ $tld['id'] ]); [ $tld['id'], NULL ]);
$premium_pricing = $db->selectRow('SELECT * FROM premium_domain_pricing WHERE tld_id = ?', $premium_pricing = $db->selectRow('SELECT * FROM premium_domain_pricing WHERE tld_id = ?',
[ $tld['id'] ]); [ $tld['id'] ]);
$premium_categories = $db->select('SELECT * FROM premium_domain_categories'); $premium_categories = $db->select('SELECT * FROM premium_domain_categories');

View file

@ -37,6 +37,7 @@ CREATE TABLE IF NOT EXISTS `registry`.`settings` (
CREATE TABLE IF NOT EXISTS `registry`.`domain_price` ( CREATE TABLE IF NOT EXISTS `registry`.`domain_price` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`tldid` int(10) unsigned NOT NULL, `tldid` int(10) unsigned NOT NULL,
`registrar_id` int(10) unsigned DEFAULT NULL,
`command` enum('create','renew','transfer') NOT NULL default 'create', `command` enum('create','renew','transfer') NOT NULL default 'create',
`m0` decimal(10,2) NOT NULL default '0.00', `m0` decimal(10,2) NOT NULL default '0.00',
`m12` decimal(10,2) NOT NULL default '0.00', `m12` decimal(10,2) NOT NULL default '0.00',
@ -50,16 +51,17 @@ CREATE TABLE IF NOT EXISTS `registry`.`domain_price` (
`m108` decimal(10,2) NOT NULL default '0.00', `m108` decimal(10,2) NOT NULL default '0.00',
`m120` decimal(10,2) NOT NULL default '0.00', `m120` decimal(10,2) NOT NULL default '0.00',
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `unique_record` (`tldid`,`command`), UNIQUE KEY `tldid_command_registrar_id` (`tldid`,`command`,`registrar_id`),
CONSTRAINT `domain_price_ibfk_1` FOREIGN KEY (`tldid`) REFERENCES `domain_tld` (`id`) ON DELETE RESTRICT CONSTRAINT `domain_price_ibfk_1` FOREIGN KEY (`tldid`) REFERENCES `domain_tld` (`id`) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='domain price'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='domain price';
CREATE TABLE IF NOT EXISTS `registry`.`domain_restore_price` ( CREATE TABLE IF NOT EXISTS `registry`.`domain_restore_price` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`tldid` int(10) unsigned NOT NULL, `tldid` int(10) unsigned NOT NULL,
`registrar_id` int(10) unsigned DEFAULT NULL,
`price` decimal(10,2) NOT NULL default '0.00', `price` decimal(10,2) NOT NULL default '0.00',
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `tldid` (`tldid`), UNIQUE KEY `tldid` (`tldid`,`registrar_id`),
CONSTRAINT `domain_restore_price_ibfk_1` FOREIGN KEY (`tldid`) REFERENCES `domain_tld` (`id`) ON DELETE RESTRICT CONSTRAINT `domain_restore_price_ibfk_1` FOREIGN KEY (`tldid`) REFERENCES `domain_tld` (`id`) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='domain restore price'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='domain restore price';
@ -827,16 +829,16 @@ CREATE TABLE IF NOT EXISTS `registry`.`tmch_crl` (
INSERT INTO `registry`.`domain_tld` VALUES('1','.TEST','/^(?!-)(?!.*--)[A-Z0-9-]{1,63}(?<!-)(\.(?!-)(?!.*--)[A-Z0-9-]{1,63}(?<!-))*$/i','0',NULL); INSERT INTO `registry`.`domain_tld` VALUES('1','.TEST','/^(?!-)(?!.*--)[A-Z0-9-]{1,63}(?<!-)(\.(?!-)(?!.*--)[A-Z0-9-]{1,63}(?<!-))*$/i','0',NULL);
INSERT INTO `registry`.`domain_tld` VALUES('2','.COM.TEST','/^(?!-)(?!.*--)[A-Z0-9-]{1,63}(?<!-)(\.(?!-)(?!.*--)[A-Z0-9-]{1,63}(?<!-))*$/i','0',NULL); INSERT INTO `registry`.`domain_tld` VALUES('2','.COM.TEST','/^(?!-)(?!.*--)[A-Z0-9-]{1,63}(?<!-)(\.(?!-)(?!.*--)[A-Z0-9-]{1,63}(?<!-))*$/i','0',NULL);
INSERT INTO `registry`.`domain_price` VALUES('1','1','create','0.00','5.00','10.00','15.00','20.00','25.00','30.00','35.00','40.00','45.00','50.00'); INSERT INTO `registry`.`domain_price` VALUES('1','1',NULL,'create','0.00','5.00','10.00','15.00','20.00','25.00','30.00','35.00','40.00','45.00','50.00');
INSERT INTO `registry`.`domain_price` VALUES('2','1','renew','0.00','5.00','10.00','15.00','20.00','25.00','30.00','35.00','40.00','45.00','50.00'); INSERT INTO `registry`.`domain_price` VALUES('2','1',NULL,'renew','0.00','5.00','10.00','15.00','20.00','25.00','30.00','35.00','40.00','45.00','50.00');
INSERT INTO `registry`.`domain_price` VALUES('3','1','transfer','0.00','5.00','10.00','15.00','20.00','25.00','30.00','35.00','40.00','45.00','50.00'); INSERT INTO `registry`.`domain_price` VALUES('3','1',NULL,'transfer','0.00','5.00','10.00','15.00','20.00','25.00','30.00','35.00','40.00','45.00','50.00');
INSERT INTO `registry`.`domain_price` VALUES('4','2','create','0.00','5.00','10.00','15.00','20.00','25.00','30.00','35.00','40.00','45.00','50.00'); INSERT INTO `registry`.`domain_price` VALUES('4','2',NULL,'create','0.00','5.00','10.00','15.00','20.00','25.00','30.00','35.00','40.00','45.00','50.00');
INSERT INTO `registry`.`domain_price` VALUES('5','2','renew','0.00','5.00','10.00','15.00','20.00','25.00','30.00','35.00','40.00','45.00','50.00'); INSERT INTO `registry`.`domain_price` VALUES('5','2',NULL,'renew','0.00','5.00','10.00','15.00','20.00','25.00','30.00','35.00','40.00','45.00','50.00');
INSERT INTO `registry`.`domain_price` VALUES('6','2','transfer','0.00','5.00','10.00','15.00','20.00','25.00','30.00','35.00','40.00','45.00','50.00'); INSERT INTO `registry`.`domain_price` VALUES('6','2',NULL,'transfer','0.00','5.00','10.00','15.00','20.00','25.00','30.00','35.00','40.00','45.00','50.00');
INSERT INTO `registry`.`domain_restore_price` VALUES('1','1','50.00'); INSERT INTO `registry`.`domain_restore_price` VALUES('1','1',NULL,'50.00');
INSERT INTO `registry`.`domain_restore_price` VALUES('2','2','50.00'); INSERT INTO `registry`.`domain_restore_price` VALUES('2','2',NULL,'50.00');
INSERT INTO `registry`.`registrar` (`name`,`clid`,`pw`,`prefix`,`email`,`whois_server`,`rdap_server`,`url`,`abuse_email`,`abuse_phone`,`accountBalance`,`creditLimit`,`creditThreshold`,`thresholdType`,`companyNumber`,`crdate`,`lastupdate`) VALUES('LeoNet LLC','leonet','$argon2id$v=19$m=131072,t=6,p=4$M0ViOHhzTWFtQW5YSGZ2MA$g2pKb+PEYtfs4QwLmf2iUtPM4+7evuqYQFp6yqGZmQg','LN','info@leonet.ua','whois.leonet.ua','rdap.leonet.ua','https://www.leonet.ua','abuse@leonet.ua','+380.325050','100000.00','100000.00','500.00','fixed','100000000',CURRENT_TIMESTAMP,CURRENT_TIMESTAMP); INSERT INTO `registry`.`registrar` (`name`,`clid`,`pw`,`prefix`,`email`,`whois_server`,`rdap_server`,`url`,`abuse_email`,`abuse_phone`,`accountBalance`,`creditLimit`,`creditThreshold`,`thresholdType`,`companyNumber`,`crdate`,`lastupdate`) VALUES('LeoNet LLC','leonet','$argon2id$v=19$m=131072,t=6,p=4$M0ViOHhzTWFtQW5YSGZ2MA$g2pKb+PEYtfs4QwLmf2iUtPM4+7evuqYQFp6yqGZmQg','LN','info@leonet.ua','whois.leonet.ua','rdap.leonet.ua','https://www.leonet.ua','abuse@leonet.ua','+380.325050','100000.00','100000.00','500.00','fixed','100000000',CURRENT_TIMESTAMP,CURRENT_TIMESTAMP);
INSERT INTO `registry`.`registrar` (`name`,`clid`,`pw`,`prefix`,`email`,`whois_server`,`rdap_server`,`url`,`abuse_email`,`abuse_phone`,`accountBalance`,`creditLimit`,`creditThreshold`,`thresholdType`,`companyNumber`,`crdate`,`lastupdate`) VALUES('Nord Registrar AB','nordregistrar','$argon2id$v=19$m=131072,t=6,p=4$MU9Eei5UMjA0M2cxYjd3bg$2yBHTWVVY4xQlMGhnhol9MRbVyVQg8qkcZ6cpdeID1U','NR','info@nordregistrar.com','whois.nordregistrar.com','rdap.nordregistrar.com','https://www.nordregistrar.com','abuse@nordregistrar.com','+46.80203','100000.00','100000.00','500.00','fixed','200000000',CURRENT_TIMESTAMP,CURRENT_TIMESTAMP); INSERT INTO `registry`.`registrar` (`name`,`clid`,`pw`,`prefix`,`email`,`whois_server`,`rdap_server`,`url`,`abuse_email`,`abuse_phone`,`accountBalance`,`creditLimit`,`creditThreshold`,`thresholdType`,`companyNumber`,`crdate`,`lastupdate`) VALUES('Nord Registrar AB','nordregistrar','$argon2id$v=19$m=131072,t=6,p=4$MU9Eei5UMjA0M2cxYjd3bg$2yBHTWVVY4xQlMGhnhol9MRbVyVQg8qkcZ6cpdeID1U','NR','info@nordregistrar.com','whois.nordregistrar.com','rdap.nordregistrar.com','https://www.nordregistrar.com','abuse@nordregistrar.com','+46.80203','100000.00','100000.00','500.00','fixed','200000000',CURRENT_TIMESTAMP,CURRENT_TIMESTAMP);

View file

@ -39,6 +39,7 @@ CREATE TABLE settings (
CREATE TABLE domain_price ( CREATE TABLE domain_price (
"id" SERIAL PRIMARY KEY, "id" SERIAL PRIMARY KEY,
"tldid" int CHECK ("tldid" >= 0) NOT NULL, "tldid" int CHECK ("tldid" >= 0) NOT NULL,
"registrar_id" int DEFAULT NULL,
"command" varchar CHECK ("command" IN ( 'create','renew','transfer' )) NOT NULL default 'create', "command" varchar CHECK ("command" IN ( 'create','renew','transfer' )) NOT NULL default 'create',
"m0" decimal(10,2) NOT NULL default '0.00', "m0" decimal(10,2) NOT NULL default '0.00',
"m12" decimal(10,2) NOT NULL default '0.00', "m12" decimal(10,2) NOT NULL default '0.00',
@ -51,14 +52,15 @@ CREATE TABLE domain_price (
"m96" decimal(10,2) NOT NULL default '0.00', "m96" decimal(10,2) NOT NULL default '0.00',
"m108" decimal(10,2) NOT NULL default '0.00', "m108" decimal(10,2) NOT NULL default '0.00',
"m120" decimal(10,2) NOT NULL default '0.00', "m120" decimal(10,2) NOT NULL default '0.00',
unique ("tldid", "command") unique ("tldid", "command", "registrar_id")
); );
CREATE TABLE domain_restore_price ( CREATE TABLE domain_restore_price (
"id" SERIAL PRIMARY KEY, "id" SERIAL PRIMARY KEY,
"tldid" int CHECK ("tldid" >= 0) NOT NULL, "tldid" int CHECK ("tldid" >= 0) NOT NULL,
"registrar_id" int DEFAULT NULL,
"price" decimal(10,2) NOT NULL default '0.00', "price" decimal(10,2) NOT NULL default '0.00',
unique ("tldid") unique ("tldid", "registrar_id")
); );
CREATE TABLE allocation_tokens ( CREATE TABLE allocation_tokens (
@ -750,16 +752,16 @@ INSERT INTO domain_tld VALUES('1','.TEST','/^(?!-)(?!.*--)[A-Z0-9-]{1,63}(?<!-)(
INSERT INTO domain_tld VALUES('2','.COM.TEST','/^(?!-)(?!.*--)[A-Z0-9-]{1,63}(?<!-)(.(?!-)(?!.*--)[A-Z0-9-]{1,63}(?<!-))*$/i','0',NULL); INSERT INTO domain_tld VALUES('2','.COM.TEST','/^(?!-)(?!.*--)[A-Z0-9-]{1,63}(?<!-)(.(?!-)(?!.*--)[A-Z0-9-]{1,63}(?<!-))*$/i','0',NULL);
SELECT setval('domain_tld_id_seq', COALESCE((SELECT MAX(id) FROM domain_tld), 0) + 1); SELECT setval('domain_tld_id_seq', COALESCE((SELECT MAX(id) FROM domain_tld), 0) + 1);
INSERT INTO domain_price VALUES (E'1',E'1',E'create',E'0.00',E'5.00',E'10.00',E'15.00',E'20.00',E'25.00',E'30.00',E'35.00',E'40.00',E'45.00',E'50.00'); INSERT INTO domain_price VALUES (E'1',E'1',NULL,E'create',E'0.00',E'5.00',E'10.00',E'15.00',E'20.00',E'25.00',E'30.00',E'35.00',E'40.00',E'45.00',E'50.00');
INSERT INTO domain_price VALUES (E'2',E'1',E'renew',E'0.00',E'5.00',E'10.00',E'15.00',E'20.00',E'25.00',E'30.00',E'35.00',E'40.00',E'45.00',E'50.00'); INSERT INTO domain_price VALUES (E'2',E'1',NULL,E'renew',E'0.00',E'5.00',E'10.00',E'15.00',E'20.00',E'25.00',E'30.00',E'35.00',E'40.00',E'45.00',E'50.00');
INSERT INTO domain_price VALUES (E'3',E'1',E'transfer',E'0.00',E'5.00',E'10.00',E'15.00',E'20.00',E'25.00',E'30.00',E'35.00',E'40.00',E'45.00',E'50.00'); INSERT INTO domain_price VALUES (E'3',E'1',NULL,E'transfer',E'0.00',E'5.00',E'10.00',E'15.00',E'20.00',E'25.00',E'30.00',E'35.00',E'40.00',E'45.00',E'50.00');
INSERT INTO domain_price VALUES (E'4',E'2',E'create',E'0.00',E'5.00',E'10.00',E'15.00',E'20.00',E'25.00',E'30.00',E'35.00',E'40.00',E'45.00',E'50.00'); INSERT INTO domain_price VALUES (E'4',E'2',NULL,E'create',E'0.00',E'5.00',E'10.00',E'15.00',E'20.00',E'25.00',E'30.00',E'35.00',E'40.00',E'45.00',E'50.00');
INSERT INTO domain_price VALUES (E'5',E'2',E'renew',E'0.00',E'5.00',E'10.00',E'15.00',E'20.00',E'25.00',E'30.00',E'35.00',E'40.00',E'45.00',E'50.00'); INSERT INTO domain_price VALUES (E'5',E'2',NULL,E'renew',E'0.00',E'5.00',E'10.00',E'15.00',E'20.00',E'25.00',E'30.00',E'35.00',E'40.00',E'45.00',E'50.00');
INSERT INTO domain_price VALUES (E'6',E'2',E'transfer',E'0.00',E'5.00',E'10.00',E'15.00',E'20.00',E'25.00',E'30.00',E'35.00',E'40.00',E'45.00',E'50.00'); INSERT INTO domain_price VALUES (E'6',E'2',NULL,E'transfer',E'0.00',E'5.00',E'10.00',E'15.00',E'20.00',E'25.00',E'30.00',E'35.00',E'40.00',E'45.00',E'50.00');
SELECT setval('domain_price_id_seq', COALESCE((SELECT MAX(id) FROM domain_price), 0) + 1); SELECT setval('domain_price_id_seq', COALESCE((SELECT MAX(id) FROM domain_price), 0) + 1);
INSERT INTO domain_restore_price VALUES (E'1',E'1',E'50.00'); INSERT INTO domain_restore_price VALUES (E'1',E'1',NULL,E'50.00');
INSERT INTO domain_restore_price VALUES (E'2',E'2',E'50.00'); INSERT INTO domain_restore_price VALUES (E'2',E'2',NULL,E'50.00');
SELECT setval('domain_restore_price_id_seq', COALESCE((SELECT MAX(id) FROM domain_restore_price), 0) + 1); SELECT setval('domain_restore_price_id_seq', COALESCE((SELECT MAX(id) FROM domain_restore_price), 0) + 1);
INSERT INTO registrar ("name", "clid", "pw", "prefix", "email", "whois_server", "rdap_server", "url", "abuse_email", "abuse_phone", "accountbalance", "creditlimit", "creditthreshold", "thresholdtype", "companyNumber", "crdate", "lastupdate") VALUES (E'LeoNet LLC',E'leonet',E'$argon2id$v=19$m=131072,t=6,p=4$M0ViOHhzTWFtQW5YSGZ2MA$g2pKb+PEYtfs4QwLmf2iUtPM4+7evuqYQFp6yqGZmQg',E'LN',E'info@leonet.ua',E'whois.leonet.ua',E'rdap.leonet.ua',E'https://www.leonet.ua',E'abuse@leonet.ua',E'+380.325050',E'100000.00',E'100000.00',E'500.00',E'fixed',E'100000000',CURRENT_TIMESTAMP,CURRENT_TIMESTAMP); INSERT INTO registrar ("name", "clid", "pw", "prefix", "email", "whois_server", "rdap_server", "url", "abuse_email", "abuse_phone", "accountbalance", "creditlimit", "creditthreshold", "thresholdtype", "companyNumber", "crdate", "lastupdate") VALUES (E'LeoNet LLC',E'leonet',E'$argon2id$v=19$m=131072,t=6,p=4$M0ViOHhzTWFtQW5YSGZ2MA$g2pKb+PEYtfs4QwLmf2iUtPM4+7evuqYQFp6yqGZmQg',E'LN',E'info@leonet.ua',E'whois.leonet.ua',E'rdap.leonet.ua',E'https://www.leonet.ua',E'abuse@leonet.ua',E'+380.325050',E'100000.00',E'100000.00',E'500.00',E'fixed',E'100000000',CURRENT_TIMESTAMP,CURRENT_TIMESTAMP);