create database dnake default charset=utf8;
use dnake;
set charset utf8;

CREATE TABLE IF NOT EXISTS `routesavp` (
	`attr` VARCHAR(255) NOT NULL,
	`value` VARCHAR(4096),
	PRIMARY KEY (`attr`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Table structure for table `aclsavp`
--

CREATE TABLE IF NOT EXISTS `aclsavp` (
	`attr` VARCHAR(255) NOT NULL,
	`value` VARCHAR(4096),
	PRIMARY KEY (`attr`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Table structure for table `configsavp`
--

CREATE TABLE IF NOT EXISTS `configsavp` (
	`attr` VARCHAR(255) NOT NULL,
	`value` VARCHAR(4096),
	PRIMARY KEY (`attr`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Table structure for table `staticregsavp`
--

CREATE TABLE IF NOT EXISTS `staticregsavp` (
	`attr` VARCHAR(255) NOT NULL,
	`value` VARCHAR(4096),
	PRIMARY KEY (`attr`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Table structure for table `filtersavp`
--

CREATE TABLE IF NOT EXISTS `filtersavp` (
	`attr` VARCHAR(255) NOT NULL,
	`value` VARCHAR(4096),
	PRIMARY KEY (`attr`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Table structure for table `siloavp`
-- Note:  This table contains 2 indexes
--

CREATE TABLE IF NOT EXISTS `siloavp` (
	`attr` VARCHAR(255) NOT NULL,
	`attr2` VARCHAR(255) NOT NULL,
	`value` VARCHAR(20315),
	PRIMARY KEY (`attr`),
	KEY `SECONDARY` (`attr2`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `users` (
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`user` VARCHAR(64) NOT NULL UNIQUE KEY, -- 设备ID
	`passwd` VARCHAR(32), -- 密码
	`name` VARCHAR(256), -- 名称
	`forwardAddress` VARCHAR(128),
	`heartbeat` DATETIME, -- SIP更新时间
	`online` INT DEFAULT 0, -- 是否在线
	`gid` INT DEFAULT 0, -- 分组ID
	`tid` INT DEFAULT 1, -- 设备类型 types表，1：分机 2：单元门口机，3：小门口机，4：围墙机，5：管理机，6：普通用户，7：管理员
	`build` INT DEFAULT 0, -- 栋号
	`unit` INT DEFAULT 0, -- 单元号
	`floor` INT DEFAULT 0, -- 楼层号
	`room` INT DEFAULT 0, -- 房号
	`idx` INT DEFAULT 0 -- 编号 只供小门口机使用
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `types` ( -- 设备类型
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`tid` INT NOT NULL UNIQUE KEY,
	`name` VARCHAR(256) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `groups` ( -- 分组信息
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`parent` INT DEFAULT 0, -- 父ID
	`name` VARCHAR(256) NOT NULL -- 分组名称
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `devices` (
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`user` VARCHAR(64) NOT NULL,
	`idx` INT DEFAULT 0, -- 设备编号: 主副机编号 0:主 1-N:副
	`url` VARCHAR(128), -- 设备心跳URL
	`proxy_url` VARCHAR(128), -- 服务器访问URL
	`proxy_ok` INT, -- 是否注册服务器
	`heartbeat` DATETIME, -- 最后一次心跳时间
	CONSTRAINT c_user_idx UNIQUE KEY idx_user_idx (`user`, `idx`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `alarm_zone` ( -- 报警防区配置
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`user` VARCHAR(64) NOT NULL, -- 设备
	`zone` INT NOT NULL, -- 防区编号
	`name` VARCHAR(256) NOT NULL, -- 防区名
	`level` INT DEFAULT 0, -- 报警级别
	`sensor` INT DEFAULT 0, -- 探头类型
	CONSTRAINT c_user_zone UNIQUE KEY idx_user_zone (`user`, `zone`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `alarm_sensor` ( -- 报警探头类型
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`sensor` INT DEFAULT 0, -- 类型编号
	`name` VARCHAR(256) NOT NULL -- 名称
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `alarm_logger` ( -- 报警日志
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`user` VARCHAR(64) NOT NULL, -- 报警设备
	`zone` INT NOT NULL, -- 防区编号
	`data` INT NOT NULL, -- 报警数据
	`ts` DATETIME,
	`confirm` INT DEFAULT 0, -- 是否确认处理
	`confirmTs` DATETIME,
	`confirmUser` VARCHAR(64), -- 处理帐号
	`confirmText` VARCHAR(512) -- 处理说明
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `alarm_content` ( -- 报警特殊内容信息
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`user` VARCHAR(64) NOT NULL, -- 设备
	`zone` INT NOT NULL, -- 防区编号
	`content` VARCHAR(8192) NOT NULL, -- 内容
	CONSTRAINT c_user_zone UNIQUE KEY idx_user_zone (`user`, `zone`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `alarm_defence` ( -- 报警布撤防日志
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`user` VARCHAR(64) NOT NULL, -- 报警设备
	`defence` INT NOT NULL, -- 分机状态
	`io` VARCHAR(512), -- 防区状态
	`ts` DATETIME -- 日志时间
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `access_card` ( -- 门禁卡
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`card` VARCHAR(64) NOT NULL UNIQUE KEY,
	`gid` INT DEFAULT 0, -- 分组ID
	`name` VARCHAR(64),
	`build` INT DEFAULT 0, -- 栋号
	`unit` INT DEFAULT 0, -- 单元号
	`floor` INT DEFAULT 0, -- 楼层号
	`room` INT DEFAULT 0, -- 房号
	`tel` VARCHAR(64), -- 电话号码
	`timeout` DATETIME -- 有效时间
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `access_logger` ( -- 刷卡记录
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`card` VARCHAR(64) NOT NULL, -- 卡号
	`user` VARCHAR(64) NOT NULL, -- 设备
	`ts` DATETIME
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `access_auth` ( -- 刷卡授权
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`card` VARCHAR(64) NOT NULL, -- 卡号
	`user` VARCHAR(64) NOT NULL, -- 设备
	`auth` INT DEFAULT 0, -- 授权或删除
	`done` INT DEFAULT 0, -- 已下发
	`ts` DATETIME, -- 下发时间
	CONSTRAINT c_card_user UNIQUE KEY idx_card_user (`card`, `user`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `access_jpeg` ( -- 图片抓拍
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`user` VARCHAR(64) NOT NULL, -- 设备
	`url` VARCHAR(128) NOT NULL, -- 文件名
	`ts` DATETIME -- 抓拍时间
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `talk_logger` ( -- 通话记录
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`user` VARCHAR(64) NOT NULL, -- 设备
	`to_user` VARCHAR(64) NOT NULL, -- 呼叫号码
	`mode` INT DEFAULT 0, -- 0:已接听 1:未接听 2:开锁
	`ts` DATETIME
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `text_logger` ( -- 信息记录
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`user` VARCHAR(64) NOT NULL, -- 设备
	`type` INT DEFAULT 0,
	`text` VARCHAR(512) NOT NULL,
	`done` INT DEFAULT 0, -- 已下发
	`ts` DATETIME
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `ad_logger` ( -- 广告推送
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`user` VARCHAR(64) NOT NULL, -- 设备
	`enable` INT DEFAULT 0, -- 启用/禁用
	`url` VARCHAR(512) NOT NULL, -- 广告链接
	`done` INT DEFAULT 0, -- 已下发
	`ts` DATETIME
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `ad_store` ( -- 广告数据
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`store` INT DEFAULT 0, -- 广告编号
	`name` VARCHAR(128) NOT NULL, -- 广告名称
	`url` VARCHAR(128) NOT NULL, -- 文件名
	`expire` INT DEFAULT 5, -- 显示时间
	`start` DATETIME, -- 开始时间
	`stop` DATETIME -- 结束时间
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `ad_wakeup` ( -- 广告唤醒
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`name` VARCHAR(128) NOT NULL, -- 名称
	`timeout` INT DEFAULT 300, -- 播放时间
	`store` INT DEFAULT 0, -- 广告编号
	`url` VARCHAR(512) NOT NULL, -- 广告链接
	`ts` DATETIME -- 唤醒时间
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `sms_user` ( -- 短信号码
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`user` VARCHAR(64) NOT NULL, -- 设备
	`name` VARCHAR(64) NOT NULL, -- 名字
	`tel` VARCHAR(64) NOT NULL -- 号码
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `sms_text` ( -- 短信
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`user` VARCHAR(64) NOT NULL, -- 设备
	`tel` VARCHAR(64) NOT NULL, -- 号码
	`text` VARCHAR(256) NOT NULL, -- 短信内容
	`done` INT DEFAULT 0, -- 已发送
	`ts` DATETIME
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `push_id` ( -- 推送ID对应表
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`user` VARCHAR(64) NOT NULL,
	`idx` INT DEFAULT 0, -- 设备编号: 主副机编号 0:主 1-N:副
	`sid` VARCHAR(128) NOT NULL UNIQUE KEY, -- 设备推送ID
	CONSTRAINT c_user_idx UNIQUE KEY idx_user_idx (`user`, `idx`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `settings` ( -- 设备配置信息
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`user` VARCHAR(64) NOT NULL, -- 设备ID
	`idx` INT DEFAULT 0, -- 设备编号
	`mac` VARCHAR(64) NOT NULL UNIQUE KEY, -- MAC地址

	`lan_ip` VARCHAR(64) NOT NULL UNIQUE KEY, -- IP地址
	`lan_mask` VARCHAR(64) NOT NULL, -- 子网掩码
	`lan_gateway` VARCHAR(64) NOT NULL, -- 默认网关
	`lan_dns` VARCHAR(64) NOT NULL,

	`sip_enable` INT DEFAULT 0, -- SIP启用
	`sip_proxy` VARCHAR(64), -- SIP服务器
	`sip_realm` VARCHAR(64), -- 设备域
	`sip_user` VARCHAR(64), -- SIP用户
	`sip_passwd` VARCHAR(64), -- SIP密码

	CONSTRAINT c_user_idx UNIQUE KEY idx_user_idx(`user`, `idx`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `patrol_device` ( -- 巡更路线设备
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`rid` INT, -- 路线编号
	`user` VARCHAR(64) NOT NULL, -- 设备
	CONSTRAINT c_user_rid UNIQUE KEY user_rid(`user`, `rid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `patrol_sched` ( -- 巡更时间段
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`rid` INT, -- 路线编号
	`name` VARCHAR(256) NOT NULL, -- 时间名称
	`start` VARCHAR(64) NOT NULL,
	`end` VARCHAR(64) NOT NULL,
	`cycle` INT DEFAULT 60 -- 巡更周期 分钟
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `patrol_user` ( -- 巡更人员
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`rid` INT, -- 路线编号
	`card` VARCHAR(64) NOT NULL, -- 卡号
	`format` INT, -- 格式 0:星期 1:日期
	`duty` VARCHAR(64) NOT NULL, -- 值班时间
	CONSTRAINT c_card_rid UNIQUE KEY card_rid(`card`, `rid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `koala_user` ( -- 人脸识别用户
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`user` VARCHAR(64) NOT NULL, -- 设备用户ID
	`sid` INT UNIQUE KEY, -- 识别ID
	`timeout` DATETIME -- 有效时间
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `koala_logger` ( -- 人脸识别日志
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`sid` INT, -- 识别ID
	`user` VARCHAR(64) NOT NULL, -- 门口机ID
	`ts` DATETIME -- 时间
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

set names gbk;

INSERT INTO groups(parent, name) VALUES(0, 'XM');
INSERT INTO users(user, passwd, name, gid, tid) VALUES('admin', '123456', 'admin', 1, 7);

REPLACE INTO types(tid, name) VALUES(1, '分机');
REPLACE INTO types(tid, name) VALUES(2, '门口机');
REPLACE INTO types(tid, name) VALUES(3, '小门口机');
REPLACE INTO types(tid, name) VALUES(4, '围墙机');
REPLACE INTO types(tid, name) VALUES(5, '管理机');
REPLACE INTO types(tid, name) VALUES(6, '普通用户');
REPLACE INTO types(tid, name) VALUES(7, '系统管理员');

REPLACE INTO alarm_sensor(sensor, name) VALUES(0, '烟感');
REPLACE INTO alarm_sensor(sensor, name) VALUES(1, '煤气');
REPLACE INTO alarm_sensor(sensor, name) VALUES(2, '红外');
REPLACE INTO alarm_sensor(sensor, name) VALUES(3, '门磁');
REPLACE INTO alarm_sensor(sensor, name) VALUES(4, '窗磁');
REPLACE INTO alarm_sensor(sensor, name) VALUES(5, '紧急按钮');
REPLACE INTO alarm_sensor(sensor, name) VALUES(6, '水浸');
REPLACE INTO alarm_sensor(sensor, name) VALUES(7, '紧急绳索');
REPLACE INTO alarm_sensor(sensor, name) VALUES(8, '床头按钮');
REPLACE INTO alarm_sensor(sensor, name) VALUES(9, '防拆');
REPLACE INTO alarm_sensor(sensor, name) VALUES(10, '电源切换');
REPLACE INTO alarm_sensor(sensor, name) VALUES(11, '欠压');
