-- 算法定义
CREATE TABLE ALG_DEFINITION (
    GKEY                  VARCHAR(50) NOT NULL                            COMMENT '主键',
    ID                    VARCHAR(100) NOT NULL                           COMMENT '算法ID',
    NAME                  VARCHAR(200) NOT NULL                           COMMENT '算法名称',
    DESCRIPTION           VARCHAR(500)                                    COMMENT '算法描述',
    VERSION               VARCHAR(50) NOT NULL                            COMMENT '算法版本号',
    TIME_STANDARD         VARCHAR(200)                                    COMMENT '耗时要求',
    CALL_MODE             VARCHAR(200)                                    COMMENT '调用方式',
    USE_LEVEL             VARCHAR(100)                                    COMMENT '使用级别',
    INPUT_EXPLAIN         longtext                                        COMMENT '输入数据说明',
    OUTPUT_EXPLAIN        longtext                                        COMMENT '输出数据说明',
    EVALUATION_EXPLAIN    longtext                                        COMMENT '评价指标说明',
    CREATED               DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL     COMMENT '创建时间',
    CREATOR               VARCHAR(100) DEFAULT 'sys' NOT NULL             COMMENT '创建人',
    CHANGED               DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL     COMMENT '修改时间',
    CHANGER               VARCHAR(100) DEFAULT 'sys' NOT NULL             COMMENT '修改人',
    IS_DELETED            INT(1) DEFAULT 0 NOT NULL                       COMMENT '是否删除',
    PRIMARY KEY (GKEY)
);

-- 第三方
CREATE TABLE ALG_THIRD (
     GKEY                 VARCHAR(50) NOT NULL                            COMMENT '主键',
     ID                   VARCHAR(100)                                    COMMENT '第三方ID',
     NAME                 VARCHAR(200)                                    COMMENT '第三方名称',
     DESCRIPTION          VARCHAR(500)                                    COMMENT '描述',
     CREATED              DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL     COMMENT '创建时间',
     CREATOR              VARCHAR(100) DEFAULT 'sys' NOT NULL             COMMENT '创建人',
     CHANGED              DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL     COMMENT '修改时间',
     CHANGER              VARCHAR(100) DEFAULT 'sys' NOT NULL             COMMENT '修改人',
     IS_DELETED           INT(1) DEFAULT 0 NOT NULL                       COMMENT '是否删除',
     PRIMARY KEY (GKEY)
);

-- 算法版本管理
CREATE TABLE ALG_VERSION (
     GKEY                 VARCHAR(50) NOT NULL                            COMMENT '主键',
     THIRD_GKEY           VARCHAR(50) NOT NULL                            COMMENT '第三方主键',
     ALG_GKEY             VARCHAR(50) NOT NULL                            COMMENT '算法主键',
     VERSION              VARCHAR(100)                                    COMMENT '在用版本号',
     IS_CALL              tinyint(1)                                      COMMENT '是否调用',
     IS_ONLINE            tinyint(1)                                      COMMENT '是否在线',
     SERVICE_ID           VARCHAR(100)                                    COMMENT '算法服务ID',
     SERVICE_ADDRESS      VARCHAR(500)                                    COMMENT '服务地址信息',
     CALL_METHOD          VARCHAR(100)                                    COMMENT '请求方法',
     INTERFACE_NAME       VARCHAR(200)                                    COMMENT '接口名称',
     CALL_CLASS           VARCHAR(100)                                    COMMENT '调用类名',
     CALL_METHOD          VARCHAR(100)                                    COMMENT '调用方法名',
     CREATED              DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL     COMMENT '创建时间',
     CREATOR              VARCHAR(100) DEFAULT 'sys' NOT NULL             COMMENT '创建人',
     CHANGED              DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL     COMMENT '修改时间',
     CHANGER              VARCHAR(100) DEFAULT 'sys' NOT NULL             COMMENT '修改人',
     IS_DELETED           INT(1) DEFAULT 0 NOT NULL                       COMMENT '是否删除',
     PRIMARY KEY (GKEY)
);

-- 执行日志
CREATE TABLE ALG_EXECUTION_LOG (
     GKEY                 VARCHAR(50) NOT NULL                            COMMENT '主键',
     VERSION_GKEY         VARCHAR(50) NOT NULL                            COMMENT '算法版本主键',
     SHIP_ID              VARCHAR(100)                                    COMMENT '船舶ID',
     SHIP_NAME            VARCHAR(200)                                    COMMENT '船舶名称',
     FACILITY_ID          VARCHAR(100)                                    COMMENT '设备ID',
     EXE_STATE            VARCHAR(100)                                    COMMENT '执行状态',
     RUN_VERSION          VARCHAR(100)                                    COMMENT '运行版本',
     COST_TIME            INT                                             COMMENT '计算耗时(ms)',
     CALL_RESOURCE        VARCHAR(100)                                    COMMENT '调用来源',
     IN_DATA              longtext                                        COMMENT '输入数据',
     OUT_DATA             longtext                                        COMMENT '输出数据',
     EXE_LOG              longtext                                        COMMENT '执行日志',
     ERROR_LOG            longtext                                        COMMENT '错误日志',
     CREATED              DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL     COMMENT '创建时间',
     CREATOR              VARCHAR(100) DEFAULT 'sys' NOT NULL             COMMENT '创建人',
     CHANGED              DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL     COMMENT '修改时间',
     CHANGER              VARCHAR(100) DEFAULT 'sys' NOT NULL             COMMENT '修改人',
     IS_DELETED           INT(1) DEFAULT 0 NOT NULL                       COMMENT '是否删除',
     PRIMARY KEY (GKEY)
);