
CREATE TABLE sys_ward (
  ward_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
  tenant_id varchar(20) default '000000' null comment '租户编号',
  ward_name VARCHAR(100) NOT NULL COMMENT '病区名称',
  dept_id VARCHAR(300) NOT NULL COMMENT '科室ID',
  status CHAR(1) DEFAULT '0' COMMENT '状态（0正常 1停用）',
  del_flag char default '0' null comment '删除标志（0代表存在 1代表删除）',
  create_dept   bigint null comment '创建部门',
  create_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
  create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  update_by VARCHAR(64) DEFAULT '' COMMENT '更新者',
  update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='病区管理表';


CREATE TABLE sys_hospital (
  hospital_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
  tenant_id varchar(20) default '000000' null comment '租户编号',
  hospital_name VARCHAR(200) NOT NULL COMMENT '医院名称',
  hospital_logo VARCHAR(300) COMMENT '医院logo',
  hospital_level char(2) COMMENT '医院等级',
  phone VARCHAR(20) COMMENT '联系电话',
  bed_space VARCHAR(100)  COMMENT '住院床位',
  region VARCHAR(300) COMMENT '所属地区',
  description VARCHAR(1000) COMMENT '医院描述',
  status CHAR(1) DEFAULT '0' COMMENT '状态（0正常 1停用）',
  del_flag char default '0' null comment '删除标志（0代表存在 1代表删除）',
  create_dept  bigint null comment '创建部门',
  create_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
  create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  update_by VARCHAR(64) DEFAULT '' COMMENT '更新者',
  update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='医院管理表';


CREATE TABLE sys_disease_label (
   label_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
   tenant_id varchar(20) default '000000' null comment '租户编号',
   label_name VARCHAR(100) NOT NULL COMMENT '疾病/部位名称',
   label_code VARCHAR(50) NOT NULL COMMENT '疾病/部位编码',
   category CHAR(1) COMMENT '所属分类',
   status CHAR(1) DEFAULT '0' COMMENT '状态（0正常 1停用）',
   del_flag char default '0' null comment '删除标志（0代表存在 1代表删除）',
   create_dept  bigint null comment '创建部门',
   create_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
   create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
   update_by VARCHAR(64) DEFAULT '' COMMENT '更新者',
   update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='疾病/部位标签表';


CREATE TABLE sys_food_category (
   food_category_id  BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
   tenant_id varchar(20) default '000000' null comment '租户编号',
   name          VARCHAR(300) NOT NULL COMMENT '分类名称',
   parent_id     BIGINT DEFAULT 0 COMMENT '上级分类ID',
   type          INT DEFAULT 2 COMMENT '类型',
   is_default    INT DEFAULT 0 COMMENT '是默认',
   sort          INT DEFAULT 0 COMMENT '排序',
   status CHAR(1) DEFAULT '0' COMMENT '状态（0正常 1停用）',
   del_flag char default '0' null comment '删除标志（0代表存在 1代表删除）',
   create_dept  bigint null comment '创建部门',
   create_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
   create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
   update_by VARCHAR(64) DEFAULT '' COMMENT '更新者',
   update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='食材分类表';

INSERT INTO sys_food_category (name, parent_id, create_by, update_by) VALUES ('调料类', 0, '1', '1');
INSERT INTO sys_food_category (name, parent_id, create_by, update_by) VALUES ('油脂类', 0, '1', '1');
INSERT INTO sys_food_category (name, parent_id, create_by, update_by) VALUES ('奶及奶制品', 0, '1', '1');
INSERT INTO sys_food_category (name, parent_id, create_by, update_by) VALUES ('大豆及坚果类', 0, '1', '1');
INSERT INTO sys_food_category (name, parent_id, create_by, update_by) VALUES ('禽畜肉类', 0, '1', '1');
INSERT INTO sys_food_category (name, parent_id, create_by, update_by) VALUES ('水产类', 0, '1', '1');
INSERT INTO sys_food_category (name, parent_id, create_by, update_by) VALUES ('蛋类', 0, '1', '1');
INSERT INTO sys_food_category (name, parent_id, create_by, update_by) VALUES ('蔬菜类', 0, '1', '1');
INSERT INTO sys_food_category (name, parent_id, create_by, update_by) VALUES ('水果类', 0, '1', '1');
INSERT INTO sys_food_category (name, parent_id, create_by, update_by) VALUES ('谷类', 0, '1', '1');
INSERT INTO sys_food_category (name, parent_id, create_by, update_by) VALUES ('全谷物和杂豆', 0, '1', '1');
INSERT INTO sys_food_category (name, parent_id, create_by, update_by) VALUES ('薯类', 0, '1', '1');
INSERT INTO sys_food_category (name, parent_id, create_by, update_by) VALUES ('水', 0, '1', '1');


CREATE TABLE sys_food_ingredient (
    food_ingredient_id     BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
    food_category_id       VARCHAR(200) NOT NULL COMMENT '食材分类ID',
    tenant_id varchar(20) default '000000' null comment '租户编号',
    name                  VARCHAR(100) NOT NULL COMMENT '食材名称',
    code                  VARCHAR(50) NOT NULL COMMENT '食材编码',
    unit                  VARCHAR(20) NOT NULL COMMENT '单位',
    purchase_price        DECIMAL(10,2)   COMMENT '入货价格（元）',
    edible_ratio          DECIMAL(5,2) DEFAULT 100.00 COMMENT '食材可食比例构成（%）',
    shelf_life            INT COMMENT '保质期（天）',
    stock_warning         DECIMAL(10,2) COMMENT '库存预警值（g）',
    expiry_warning        INT COMMENT '保质期预警（天）',
    description           TEXT COMMENT '食材描述',

    -- 营养成分
    calories              DECIMAL(8,2) DEFAULT 0.00 COMMENT '热量（kcal）',
    protein               DECIMAL(8,2) DEFAULT 0.00 COMMENT '蛋白质（g）',
    fat                   DECIMAL(8,2) DEFAULT 0.00 COMMENT '脂肪（g）',
    carbohydrate          DECIMAL(8,2) DEFAULT 0.00 COMMENT '碳水化合物（g）',
    water                 DECIMAL(8,2) DEFAULT 0.00 COMMENT '水分（ml）',
    vitamin_a             DECIMAL(8,2) DEFAULT 0.00 COMMENT '维生素A（μg）',
    vitamin_b2            DECIMAL(8,2) DEFAULT 0.00 COMMENT '维生素B2（mg）',
    vitamin_c             DECIMAL(8,2) DEFAULT 0.00 COMMENT '维生素C（mg）',
    sodium                DECIMAL(8,2) DEFAULT 0.00 COMMENT '钠（mg）',
    iron                  DECIMAL(8,2) DEFAULT 0.00 COMMENT '铁（mg）',
    phosphorus            DECIMAL(8,2) DEFAULT 0.00 COMMENT '磷（mg）',
    dietary_fiber         DECIMAL(8,2) DEFAULT 0.00 COMMENT '膳食纤维（g）',
    vitamin_b1            DECIMAL(8,2) DEFAULT 0.00 COMMENT '维生素B1（mg）',
    niacin                DECIMAL(8,2) DEFAULT 0.00 COMMENT '烟酸（mg）',
    vitamin_e             DECIMAL(8,2) DEFAULT 0.00 COMMENT '维生素E（mg）',
    calcium               DECIMAL(8,2) DEFAULT 0.00 COMMENT '钙（mg）',
    potassium             DECIMAL(8,2) DEFAULT 0.00 COMMENT '钾（mg）',
    cholesterol           DECIMAL(8,2) DEFAULT 0.00 COMMENT '胆固醇（g）',

    -- 系统字段
    status CHAR(1) DEFAULT '0' COMMENT '状态（0正常 1停用）',
    del_flag char default '0' null comment '删除标志（0代表存在 1代表删除）',
    create_dept  bigint null comment '创建部门',
    create_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    update_by VARCHAR(64) DEFAULT '' COMMENT '更新者',
    update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='食材管理表';


CREATE TABLE sys_recipe_category (
    recipe_category_id     BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
    tenant_id varchar(20) default '000000' null comment '租户编号',
    name            VARCHAR(100) NOT NULL COMMENT '食谱分类名称',
    sort            INT DEFAULT 0 COMMENT '排序',
    -- 系统字段
    status CHAR(1) DEFAULT '0' COMMENT '状态（0正常 1停用）',
    del_flag char default '0' null comment '删除标志（0代表存在 1代表删除）',
    create_dept  bigint null comment '创建部门',
    create_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    update_by VARCHAR(64) DEFAULT '' COMMENT '更新者',
    update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='食谱分类管理表';


CREATE TABLE sys_recipe (
    recipe_id         BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
    tenant_id  varchar(20) default '000000' null comment '租户编号',
    name              VARCHAR(100) NOT NULL COMMENT '食谱名称',
    category_id       BIGINT NOT NULL COMMENT '食谱分类ID',
    base_diet         VARCHAR(100) DEFAULT NULL COMMENT '基本膳食',
    meal_time         VARCHAR(100) DEFAULT NULL COMMENT '餐次',
    price             DECIMAL(10,2) DEFAULT 0.00 COMMENT '食谱价格',
    suitable_disease  VARCHAR(255) DEFAULT NULL COMMENT '适用疾病（可用逗号分隔多个）',
    avoid_disease     VARCHAR(255) DEFAULT NULL COMMENT '忌食病症（可用逗号分隔多个）',
    suitable_dept     VARCHAR(255) DEFAULT NULL COMMENT '适用科室（可用逗号分隔多个）',
    smart_recommend  CHAR(1)  default '0' null comment '智能推荐（1否 0是）',
    cooking_method    VARCHAR(255) DEFAULT NULL COMMENT '制作方式',

    -- 系统字段
    status CHAR(1) DEFAULT '0' COMMENT '状态（0正常 1停用）',
    del_flag char default '0' null comment '删除标志（0代表存在 1代表删除）',
    create_dept  bigint null comment '创建部门',
    create_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    update_by VARCHAR(64) DEFAULT '' COMMENT '更新者',
    update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='食谱管理表';



CREATE TABLE sys_recipe_food_ingredient (
    id                  BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
    tenant_id  varchar(20) default '000000' null comment '租户编号',
    recipe_id           BIGINT NOT NULL COMMENT '食谱ID',
    food_ingredient_id  BIGINT NOT NULL COMMENT '食材ID',
    quantity            DECIMAL(10,2) DEFAULT 0.00 COMMENT '用量（可选，单位自定义）',
    calories            DECIMAL(10,2) DEFAULT 0.00 COMMENT '热量（kcal）',
    remark              VARCHAR(255) DEFAULT NULL COMMENT '备注',

    -- 系统字段
    create_dept  bigint null comment '创建部门',
    create_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    update_by VARCHAR(64) DEFAULT '' COMMENT '更新者',
    update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='食谱与食材关联表';


