module.exports = class extends think.Model {
  get tableName() {
    return 'sys_config';
  }

  /**
   * 根据 key 获取配置值（自动 JSON.parse）
   */
  async getByKey(key) {
    const row = await this.where({ config_key: key }).find();
    if (think.isEmpty(row)) return null;
    try {
      return JSON.parse(row.config_value);
    } catch (e) {
      return row.config_value;
    }
  }

  /**
   * 设置配置值（自动 JSON.stringify）
   */
  async setByKey(key, value, remark) {
    const val = typeof value === 'string' ? value : JSON.stringify(value);
    const exists = await this.where({ config_key: key }).find();
    if (think.isEmpty(exists)) {
      return this.add({ config_key: key, config_value: val, remark: remark || '' });
    }
    return this.where({ config_key: key }).update({ config_value: val });
  }
};
