create_tables.sqlite 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713
  1. --
  2. -- Copyright (c) 2019 Clementine Computing LLC.
  3. --
  4. -- This file is part of PopuFare.
  5. --
  6. -- PopuFare is free software: you can redistribute it and/or modify
  7. -- it under the terms of the GNU Affero General Public License as published by
  8. -- the Free Software Foundation, either version 3 of the License, or
  9. -- (at your option) any later version.
  10. --
  11. -- PopuFare is distributed in the hope that it will be useful,
  12. -- but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. -- GNU Affero General Public License for more details.
  15. --
  16. -- You should have received a copy of the GNU Affero General Public License
  17. -- along with PopuFare. If not, see <https://www.gnu.org/licenses/>.
  18. --
  19. -- AVLS data table receives all AVLS chirps and stores them for later reference
  20. -- DROP TABLE IF EXISTS `avls_data`;
  21. CREATE TABLE IF NOT EXISTS avls_data (
  22. id INTEGER PRIMARY KEY,
  23. equip_num INTEGER,
  24. driver INTEGER,
  25. paddle INTEGER,
  26. route INTEGER,
  27. trip INTEGER,
  28. stop INTEGER,
  29. chirp_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  30. latitude REAL,
  31. longitude REAL,
  32. heading REAL,
  33. velocity REAL
  34. );
  35. -- Bus Pass Table holds all bus pass holders
  36. -- DROP TABLE IF EXISTS `active_rider_table`;
  37. CREATE TABLE IF NOT EXISTS active_rider_table (
  38. -- The following entries are stored on the client as well and kept in sync
  39. seq_num INTEGER UNIQUE PRIMARY KEY ,
  40. logical_card_id INTEGER NOT NULL,
  41. rfid_token VARCHAR(32),
  42. mag_token VARCHAR(32),
  43. rule_name VARCHAR(24),
  44. rule_param VARCHAR(24),
  45. -- The rest are for server-side recordkeeping...
  46. deleted BOOLEAN DEFAULT '0',
  47. parent_entity VARCHAR(32),
  48. notes VARCHAR(64)
  49. ) ;
  50. create INDEX active_rider_table_seq_idx on active_rider_table (seq_num);
  51. create INDEX active_rider_table_card_idx on active_rider_table (logical_card_id);
  52. create INDEX active_rider_table_card_seq_and_card on active_rider_table (logical_card_id, seq_num);
  53. -- Billing Log Table
  54. -- DROP TABLE IF EXISTS `billing_log`;
  55. CREATE TABLE IF NOT EXISTS billing_log (
  56. id INTEGER PRIMARY KEY,
  57. -- MD5 sum of the orignal record as sent by the client, used to confirm storing the record
  58. conf_checksum VARCHAR(32) UNIQUE,
  59. -- Contents of the billing log entry coming from the client
  60. equip_num INTEGER,
  61. driver INTEGER,
  62. paddle INTEGER,
  63. route INTEGER,
  64. trip INTEGER,
  65. stop INTEGER,
  66. ride_time TIMESTAMP,
  67. latitude REAL,
  68. longitude REAL,
  69. action VARCHAR(16),
  70. rule VARCHAR(24),
  71. ruleparam VARCHAR(24),
  72. reason VARCHAR(64),
  73. credential VARCHAR(32),
  74. logical_card_id INTEGER NOT NULL,
  75. cash_value INTEGER,
  76. stop_name VARCHAR(64)
  77. ) ;
  78. -- DROP TABLE IF EXISTS `diagnostic_log`;
  79. CREATE TABLE IF NOT EXISTS diagnostic_log (
  80. id INTEGER PRIMARY KEY,
  81. servertime TIMESTAMP default CURRENT_TIMESTAMP,
  82. loglvl VARCHAR(8),
  83. message VARCHAR(256)
  84. -- And some additional index data
  85. ) ;
  86. create INDEX servertime_idx on diagnostic_log (servertime);
  87. create INDEX lvl_msg_idx on diagnostic_log (servertime, loglvl);
  88. -- DROP TABLE IF EXISTS `pass_option`;
  89. create table pass_option(
  90. id INTEGER PRIMARY KEY,
  91. group_id INTEGER,
  92. param INTEGER,
  93. name varchar(255),
  94. rule varchar(255),
  95. db_rule varchar(255),
  96. type varchar(255),
  97. description varchar(255),
  98. num_opt INTEGER default 0,
  99. option0 varchar(255),
  100. option1 varchar(255),
  101. option2 varchar(255),
  102. option3 varchar(255),
  103. active INTEGER default 0
  104. ) ;
  105. -- DROP TABLE IF EXISTS rule_class;
  106. CREATE TABLE IF NOT EXISTS rule_class (
  107. id INTEGER PRIMARY KEY,
  108. rulename VARCHAR(24),
  109. ruleclass VARCHAR(24)
  110. ) ;
  111. -- DROP TABLE IF EXISTS update_level;
  112. CREATE TABLE IF NOT EXISTS update_level (
  113. id INTEGER PRIMARY KEY,
  114. equip_num INTEGER NOT NULL DEFAULT 0,
  115. client_file VARCHAR(32) NOT NULL,
  116. checksum VARCHAR(32) NOT NULL,
  117. file_size INTEGER NOT NULL,
  118. file_path VARCHAR(512) NOT NULL,
  119. fileversion VARCHAR(32),
  120. -- The following field is never manually set and is used only to pull the latest value
  121. serial INTEGER NOT NULL
  122. -- These indicies should make the operation of "give me the latest of each update for bus number X" fast
  123. );
  124. create INDEX ul_equip_num_idx on update_level (equip_num);
  125. create INDEX client_file_idx on update_level (client_file);
  126. create INDEX serial_idx on update_level (serial);
  127. create INDEX file_eqip_idx on update_level (client_file, equip_num);
  128. CREATE TABLE IF NOT EXISTS bus_checkin_log (
  129. id INTEGER PRIMARY KEY,
  130. checkin_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  131. busunit_num INTEGER NOT NULL DEFAULT 0,
  132. equip_num INTEGER NOT NULL DEFAULT 0,
  133. eth0_mac VARCHAR(17),
  134. cell_imei VARCHAR(15),
  135. cell_imsi VARCHAR(15),
  136. version_data VARCHAR(256)
  137. ) ;
  138. create INDEX time_index on bus_checkin_log (checkin_time);
  139. create INDEX bcl_equip_num_idx on bus_checkin_log (equip_num);
  140. create INDEX busunit_num_idx on bus_checkin_log (busunit_num);
  141. DROP TABLE IF EXISTS `user_pass`;
  142. CREATE TABLE `user_pass` (
  143. user_pass_id INTEGER PRIMARY KEY,
  144. logical_card_id INTEGER default NULL,
  145. issued datetime default NULL,
  146. activated datetime default NULL,
  147. deactivated datetime default NULL,
  148. firstused datetime default NULL,
  149. lastused datetime default NULL,
  150. nrides_orig int(11) default NULL,
  151. nrides_remain int(11) default NULL,
  152. nday_orig int(11) default NULL,
  153. nday_expiration datetime default NULL,
  154. active tinyint(1) default 0,
  155. expired tinyint(1) default 0,
  156. rule varchar(255) default NULL,
  157. queue_order int(11) default NULL,
  158. comment varchar(255) default NULL,
  159. paytype varchar(255) default NULL
  160. ) ;
  161. DROP TABLE IF EXISTS `user_card`;
  162. CREATE TABLE `user_card` (
  163. logical_card_id INTEGER PRIMARY KEY,
  164. -- legacy, will remove in final phase2
  165. -- card_number varchar(128) UNIQUE default NULL,
  166. -- rfsite int(127) default NULL,
  167. -- rfid int(127) default NULL,
  168. --
  169. mag_token varchar(255) default null,
  170. rfid_token varchar(255) default null,
  171. comment varchar(255) default NULL,
  172. userid int(11) default NULL,
  173. issued datetime default NULL,
  174. active tinyint(1) default 1,
  175. deactivated datetime default NULL,
  176. lastused datetime default NULL,
  177. firstused datetime default NULL,
  178. group_id int(11) default NULL,
  179. issuetype varchar(255) default NULL
  180. ) ;
  181. DROP TABLE IF EXISTS `groups`;
  182. CREATE TABLE `groups` (
  183. group_id INTEGER PRIMARY KEY,
  184. group_name varchar(255) default NULL
  185. ) ;
  186. DROP TABLE IF EXISTS `audit_user_pass`;
  187. CREATE TABLE `audit_user_pass` (
  188. `audit_user_pass_id` INTEGER PRIMARY KEY,
  189. `old_user_pass_id` INTEGER default NULL,
  190. `old_logical_card_id` INTEGER default NULL,
  191. `old_issued` datetime default NULL,
  192. `old_activated` datetime default NULL,
  193. `old_deactivated` datetime default NULL,
  194. `old_firstused` datetime default NULL,
  195. `old_lastused` datetime default NULL,
  196. `old_nrides_orig` INTEGER default NULL,
  197. `old_nrides_remain` INTEGER default NULL,
  198. `old_nday_orig` INTEGER default NULL,
  199. `old_nday_expiration` datetime default NULL,
  200. `old_active` INTEGER default NULL,
  201. `old_rule` char(255) default NULL,
  202. `old_queue_order` INTEGER default NULL,
  203. `old_log_id` INTEGER default NULL,
  204. `old_comment` varchar(255) default NULL,
  205. `new_user_pass_id` INTEGER default NULL,
  206. `new_logical_card_id` INTEGER default NULL,
  207. `new_issued` datetime default NULL,
  208. `new_activated` datetime default NULL,
  209. `new_deactivated` datetime default NULL,
  210. `new_firstused` datetime default NULL,
  211. `new_lastused` datetime default NULL,
  212. `new_nrides_orig` INTEGER default NULL,
  213. `new_nrides_remain` INTEGER default NULL,
  214. `new_nday_orig` INTEGER default NULL,
  215. `new_nday_expiration` datetime default NULL,
  216. `new_active` INTEGER default NULL,
  217. `new_rule` char(255) default NULL,
  218. `new_queue_order` INTEGER default NULL,
  219. `new_log_id` INTEGER default NULL,
  220. `new_comment` varchar(255) default NULL,
  221. `comment` varchar(255) default NULL,
  222. `owner_id` INTEGER default NULL,
  223. --`timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  224. `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP,
  225. `old_expired` INTEGER default NULL,
  226. `new_expired` INTEGER default NULL,
  227. `old_paytype` varchar(255) default NULL,
  228. `new_paytype` varchar(255) default NULL
  229. ) ;
  230. create INDEX audit_user_pass_id_idx on audit_user_pass (audit_user_pass_id);
  231. create INDEX audit_user_pass_timestamp_idx on audit_user_pass (timestamp);
  232. create INDEX audit_user_pass_new_user_pass_id_idx on audit_user_pass (new_user_pass_id);
  233. create INDEX audit_user_pass_old_user_pass_id_idx on audit_user_pass (old_user_pass_id);
  234. DROP TABLE IF EXISTS `audit_user_card`;
  235. CREATE TABLE `audit_user_card` (
  236. `audit_user_card_id` INTEGER PRIMARY KEY,
  237. `old_logical_card_id` INTEGER default NULL,
  238. `old_comment` varchar(255) default NULL,
  239. `old_lastused` datetime default NULL,
  240. `old_userid` INTEGER default NULL,
  241. `old_issued` datetime default NULL,
  242. `old_firstused` datetime default NULL,
  243. `old_group_id` INTEGER default NULL,
  244. `old_issuetype` varchar(255) default NULL,
  245. `new_logical_card_id` INTEGER default NULL,
  246. `new_comment` varchar(255) default NULL,
  247. `new_lastused` datetime default NULL,
  248. `new_userid` INTEGER default NULL,
  249. `new_issued` datetime default NULL,
  250. `new_firstused` datetime default NULL,
  251. `new_group_id` INTEGER default NULL,
  252. `new_issuetype` varchar(255) default NULL,
  253. --`timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  254. `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP,
  255. `comment` varchar(255) default NULL,
  256. `old_mag_token` varchar(31) default NULL,
  257. `new_mag_token` varchar(31) default NULL,
  258. `old_rfid_token` varchar(31) default NULL,
  259. `new_rfid_token` varchar(31) default NULL,
  260. `old_active` INTEGER default NULL,
  261. `new_active` INTEGER default NULL,
  262. `old_deactivated` datetime default null,
  263. `new_deactivated` datetime default null
  264. ) ;
  265. create INDEX audit_user_card_id_idx on audit_user_card (audit_user_card_id);
  266. create INDEX audit_user_card_timestampe_idx on audit_user_card (timestamp);
  267. create INDEX audit_user_card_new_logical_card_id_idx on audit_user_card (new_logical_card_id);
  268. create INDEX audit_user_card_old_logical_card_id_idx on audit_user_card (old_logical_card_id);
  269. create INDEX audit_user_card_new_mag_token_idx on audit_user_card (new_mag_token);
  270. create INDEX audit_user_card_old_mag_token_idx on audit_user_card (old_mag_token);
  271. create INDEX audit_user_card_new_rfid_token_idx on audit_user_card (new_rfid_token);
  272. create INDEX audit_user_card_old_rfid_token_idx on audit_user_card (old_rfid_token);
  273. DROP TABLE IF EXISTS `users`;
  274. CREATE TABLE `users` (
  275. `userid` INTEGER PRIMARY KEY,
  276. `username` char(255) default NULL,
  277. `comment` char(255) default NULL,
  278. `first_name` char(128) default NULL,
  279. `last_name` char(128) default NULL,
  280. `phone` char(31) default NULL,
  281. `email` char(128) default NULL,
  282. `address` char(255) default NULL,
  283. `city` char(127) default NULL,
  284. `state` char(127) default NULL,
  285. `zip` char(31) default NULL,
  286. `created` datetime default NULL,
  287. `active` INTEGER default NULL,
  288. `passwordhash` varchar(255) default NULL,
  289. `shipping_address` varchar(255) default NULL,
  290. `shipping_city` varchar(255) default NULL,
  291. `shipping_state` varchar(255) default NULL,
  292. `shipping_zip` varchar(255) default NULL,
  293. `shipping_name` varchar(255) default NULL,
  294. `shipping_country_code` varchar(32) default NULL,
  295. `shipping_country_name` varchar(255) default NULL,
  296. `reset_attempts` INTEGER default '0'
  297. ) ;
  298. DROP TABLE IF EXISTS `audit_users`;
  299. CREATE TABLE `audit_users` (
  300. `audit_users_id` INTEGER PRIMARY KEY,
  301. --`timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  302. `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP,
  303. `comment` varchar(255) default NULL,
  304. `old_username` char(255) default NULL,
  305. `old_userid` INTEGER default NULL,
  306. `old_comment` char(255) default NULL,
  307. `old_first_name` char(128) default NULL,
  308. `old_last_name` char(128) default NULL,
  309. `old_phone` char(31) default NULL,
  310. `old_email` char(128) default NULL,
  311. `old_address` char(255) default NULL,
  312. `old_city` char(127) default NULL,
  313. `old_state` char(127) default NULL,
  314. `old_zip` char(31) default NULL,
  315. `old_created` datetime default NULL,
  316. `old_active` INTEGER default NULL,
  317. `old_passwordhash` varchar(255) default NULL,
  318. `new_username` char(255) default NULL,
  319. `new_userid` INTEGER default NULL,
  320. `new_comment` char(255) default NULL,
  321. `new_first_name` char(128) default NULL,
  322. `new_last_name` char(128) default NULL,
  323. `new_phone` char(31) default NULL,
  324. `new_email` char(128) default NULL,
  325. `new_address` char(255) default NULL,
  326. `new_city` char(127) default NULL,
  327. `new_state` char(127) default NULL,
  328. `new_zip` char(31) default NULL,
  329. `new_created` datetime default NULL,
  330. `new_active` INTEGER default NULL,
  331. `new_passwordhash` varchar(255) default NULL,
  332. `old_shipping_address` varchar(255) default NULL,
  333. `old_shipping_city` varchar(255) default NULL,
  334. `old_shipping_state` varchar(255) default NULL,
  335. `old_shipping_zip` varchar(255) default NULL,
  336. `old_shipping_name` varchar(255) default NULL,
  337. `old_shipping_country_code` varchar(255) default NULL,
  338. `old_shipping_country_name` varchar(32) default NULL,
  339. `old_reset_attempts` varchar(255) default NULL,
  340. `new_shipping_address` varchar(255) default NULL,
  341. `new_shipping_city` varchar(255) default NULL,
  342. `new_shipping_state` varchar(255) default NULL,
  343. `new_shipping_zip` varchar(255) default NULL,
  344. `new_shipping_name` varchar(255) default NULL,
  345. `new_shipping_country_code` varchar(255) default NULL,
  346. `new_shipping_country_name` varchar(32) default NULL,
  347. `new_reset_attempts` varchar(255) default NULL
  348. ) ;
  349. -- Admin Web UI tables
  350. DROP TABLE IF EXISTS `admins`;
  351. CREATE TABLE `admins` (
  352. `userid` INTEGER PRIMARY KEY,
  353. `group_id` INTEGER default NULL,
  354. `username` char(255) default NULL,
  355. `password` char(255) default NULL,
  356. `active` INTEGER default 1,
  357. `comment` varchar(255) default null
  358. ) ;
  359. DROP TABLE IF EXISTS `audit_admins`;
  360. CREATE TABLE `audit_admins` (
  361. `audit_admins_id` INTEGER PRIMARY KEY,
  362. --`timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  363. `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP,
  364. `comment` varchar(255) default NULL,
  365. `old_userid` INTEGER default NULL,
  366. `old_username` varchar(255) default NULL,
  367. `old_password` varchar(255) default NULL,
  368. `new_userid` INTEGER default NULL,
  369. `new_username` varchar(255) default NULL,
  370. `new_password` varchar(255) default NULL
  371. ) ;
  372. DROP TABLE IF EXISTS `admins_session_info`;
  373. CREATE TABLE `admins_session_info` (
  374. `id` INTEGER PRIMARY KEY,
  375. `userid` INTEGER default NULL,
  376. `sessionid` char(255) default NULL,
  377. `lastactive` datetime default NULL
  378. ) ;
  379. DROP TABLE IF EXISTS `admin_groups`;
  380. CREATE TABLE `admin_groups` (
  381. id INTEGER PRIMARY KEY,
  382. `userid` INTEGER default NULL,
  383. `group_id` INTEGER default NULL,
  384. `permissions` INTEGER default NULL
  385. ) ;
  386. DROP TABLE IF EXISTS `rule_mappings`;
  387. CREATE TABLE `rule_mappings` (
  388. id INTEGER PRIMARY KEY,
  389. `rule` char(255) NOT NULL default '',
  390. `rule_text` char(255) default NULL,
  391. `group_id` INTEGER default NULL,
  392. `active` INTEGER
  393. ) ;
  394. DROP TABLE IF EXISTS `org_default_pass_value`;
  395. CREATE TABLE `org_default_pass_value` (
  396. `id` INTEGER PRIMARY KEY,
  397. `name` varchar(255) default NULL,
  398. `nday` INTEGER default NULL,
  399. `nride` INTEGER default NULL,
  400. `description` varchar(255) default NULL,
  401. `start` datetime default NULL,
  402. `end` datetime default NULL
  403. ) ;
  404. DROP TABLE IF EXISTS `org_default_card_value`;
  405. CREATE TABLE `org_default_card_value` (
  406. `id` INTEGER PRIMARY KEY,
  407. `group_id` INTEGER default NULL,
  408. `mag_track` INTEGER default NULL,
  409. `rf_length` INTEGER default NULL,
  410. `rf_site` INTEGER default NULL
  411. ) ;
  412. -- WEB API tables
  413. DROP TABLE IF EXISTS `authorization_log`;
  414. CREATE TABLE `authorization_log` (
  415. `authorization_log_id` INTEGER PRIMARY KEY,
  416. --`timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  417. `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP,
  418. `authorization_type` varchar(255) default NULL,
  419. `authorization_code` varchar(255) default NULL,
  420. `user_id` INTEGER default NULL,
  421. `logical_card_id` INTEGER default NULL,
  422. `user_pass_id` INTEGER default NULL,
  423. `comment` varchar(255) default NULL
  424. ) ;
  425. DROP TABLE IF EXISTS `org_card_order_queue`;
  426. CREATE TABLE `org_card_order_queue` (
  427. `org_card_order_queue_id` INTEGER PRIMARY KEY,
  428. `userid` INTEGER default NULL,
  429. `logical_card_id` INTEGER default NULL,
  430. `created` timestamp NOT NULL default CURRENT_TIMESTAMP,
  431. `processed` timestamp NULL default NULL,
  432. `comment` varchar(255) default NULL,
  433. `pending` INTEGER default NULL
  434. ) ;
  435. DROP TABLE IF EXISTS `org_api_session`;
  436. CREATE TABLE `org_api_session` (
  437. id INTEGER PRIMARY KEY,
  438. --`timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  439. `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP,
  440. `ip` varchar(15) default NULL,
  441. `active` INTEGER default NULL,
  442. `server_token` varchar(255) default NULL,
  443. `user_token` varchar(255) default NULL
  444. ) ;
  445. DROP TABLE IF EXISTS `org_api_log`;
  446. CREATE TABLE `org_api_log` (
  447. `log_id` INTEGER PRIMARY KEY,
  448. --`timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  449. `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP,
  450. `log` blob
  451. ) ;
  452. DROP TABLE IF EXISTS `org_api_password_reset`;
  453. CREATE TABLE `org_api_password_reset` (
  454. id INTEGER PRIMARY KEY,
  455. --`timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  456. `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP,
  457. `token` varchar(255) default NULL,
  458. `userid` INTEGER default NULL,
  459. `email` varchar(255) default NULL,
  460. `active` INTEGER default NULL
  461. ) ;
  462. DROP TABLE IF EXISTS `org_api_register_email`;
  463. CREATE TABLE `org_api_register_email` (
  464. id INTEGER PRIMARY KEY,
  465. --`timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  466. `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP,
  467. `token` varchar(255) default NULL,
  468. `active` INTEGER default NULL,
  469. `email` varchar(255) default NULL
  470. ) ;
  471. -- drivers, stops and paddles + misc
  472. DROP TABLE IF EXISTS `drivers`;
  473. CREATE TABLE `drivers` (
  474. `id` INTEGER PRIMARY KEY,
  475. `pin` varchar(8) NOT NULL default '',
  476. `name` varchar(32) default NULL
  477. ) ;
  478. --
  479. -- Table structure for table `stops`
  480. --
  481. DROP TABLE IF EXISTS `stops`;
  482. CREATE TABLE `stops` (
  483. `id` INTEGER PRIMARY KEY,
  484. `latitude` double NOT NULL default '0',
  485. `longitude` double NOT NULL default '0',
  486. `name` varchar(32) default NULL
  487. ) ;
  488. --
  489. -- Table structure for table `paddles`
  490. --
  491. DROP TABLE IF EXISTS `paddles`;
  492. CREATE TABLE `paddles` (
  493. `id` INTEGER PRIMARY KEY,
  494. `slot` INTEGER NOT NULL default '0',
  495. `arrival` time default NULL,
  496. `route` INTEGER default NULL,
  497. `trip` INTEGER default NULL,
  498. `stage` INTEGER default NULL,
  499. `stop` INTEGER default NULL,
  500. `stopid` INTEGER NOT NULL default '0'
  501. ) ;
  502. --
  503. -- Table structure for table `old_stops`
  504. --
  505. DROP TABLE IF EXISTS `old_stops`;
  506. CREATE TABLE `old_stops` (
  507. `id` INTEGER PRIMARY KEY,
  508. `verstring` text,
  509. `latitude` double NOT NULL default '0',
  510. `longitude` double NOT NULL default '0',
  511. `name` varchar(32) default NULL
  512. ) ;
  513. --
  514. -- Table structure for table `old_paddles`
  515. --
  516. DROP TABLE IF EXISTS `old_paddles`;
  517. CREATE TABLE `old_paddles` (
  518. `id` INTEGER PRIMARY KEY,
  519. `verstring` text,
  520. `slot` INTEGER NOT NULL default '0',
  521. `arrival` time default NULL,
  522. `route` INTEGER default NULL,
  523. `trip` INTEGER default NULL,
  524. `stage` INTEGER default NULL,
  525. `stop` INTEGER default NULL,
  526. `stopid` INTEGER NOT NULL default '0'
  527. ) ;
  528. --
  529. -- Table structure for table `live_stops`
  530. --
  531. DROP TABLE IF EXISTS `live_stops`;
  532. CREATE TABLE `live_stops` (
  533. `id` INTEGER PRIMARY KEY,
  534. `latitude` double NOT NULL default '0',
  535. `longitude` double NOT NULL default '0',
  536. `name` varchar(32) default NULL
  537. ) ;
  538. --
  539. -- Table structure for table `live_paddles`
  540. --
  541. DROP TABLE IF EXISTS `live_paddles`;
  542. CREATE TABLE `live_paddles` (
  543. `id` INTEGER PRIMARY KEY,
  544. `slot` INTEGER NOT NULL default '0',
  545. `arrival` time default NULL,
  546. `route` INTEGER default NULL,
  547. `trip` INTEGER default NULL,
  548. `stage` INTEGER default NULL,
  549. `stop` INTEGER default NULL,
  550. `stopid` INTEGER NOT NULL default '0'
  551. ) ;
  552. DROP TABLE IF EXISTS `price_point`;
  553. CREATE TABLE `price_point` (
  554. `id` INTEGER PRIMARY KEY,
  555. `price` double default NULL,
  556. `param` INTEGER default NULL,
  557. `name` varchar(255) default NULL,
  558. `rule` varchar(32) default NULL,
  559. `db_rule` varchar(32) default NULL,
  560. `group_id` INTEGER default NULL,
  561. `type` varchar(255) default NULL,
  562. `description` varchar(1024) default NULL,
  563. `num_opt` INTEGER default 0,
  564. `price_option0` varchar(255) default null,
  565. `price_option1` varchar(255) default null,
  566. `price_option2` varchar(255) default null,
  567. `price_option3` varchar(255) default null,
  568. `active` INTEGER default 0
  569. ) ;
  570. drop table if exists billing_log_annotation;
  571. create table if not exists billing_log_annotation (
  572. id INTEGER PRIMARY KEY,
  573. seq_num INTEGER not null,
  574. rule varchar(24),
  575. ruleparam varchar(24),
  576. reason varchar(64),
  577. credential varchar(32),
  578. note varchar(512),
  579. timestamp timestamp default current_timestamp
  580. ) ;