/**
 * 初始化用户协议和隐私政策内容
 */
const { sequelize } = require('../config/database');
const Config = require('../models/Config');

const userAgreement = `用户服务协议

欢迎使用海外预约服务平台（以下简称"本平台"）。请您在使用本平台服务前，仔细阅读并充分理解本协议的全部内容。

一、服务说明

1. 本平台为用户提供机票预订、酒店预订、接送机服务、签证咨询等海外出行相关服务的预约平台。
2. 本平台仅作为服务预约的中介平台，具体服务由相关服务提供商提供。
3. 用户通过本平台提交的预约信息将用于服务安排，请确保信息真实准确。

二、用户注册与账户

1. 用户需通过微信授权登录使用本平台服务。
2. 用户应妥善保管账户信息，因账户信息泄露造成的损失由用户自行承担。
3. 用户不得将账户转让、出借给他人使用。

三、预约服务规则

1. 用户提交预约后，平台将尽快处理并安排相关服务。
2. 预约成功后，如需取消或修改，请及时联系客服。
3. 因用户原因导致的预约取消，可能产生相应的取消费用。
4. 服务价格以实际确认时为准，平台有权根据市场情况调整价格。

四、用户行为规范

1. 用户应遵守国家法律法规，不得利用本平台从事违法活动。
2. 用户不得发布虚假信息或恶意干扰平台正常运营。
3. 用户应尊重其他用户和服务人员，文明使用平台服务。

五、知识产权

1. 本平台的所有内容（包括但不限于文字、图片、标识等）均受知识产权法保护。
2. 未经授权，用户不得复制、传播或以其他方式使用平台内容。

六、免责声明

1. 因不可抗力（如自然灾害、政策变化等）导致服务无法正常提供，本平台不承担责任。
2. 用户因自身原因（如证件问题、行程变更等）导致无法享受服务，本平台不承担责任。
3. 本平台对第三方服务提供商的服务质量不承担直接责任。

七、协议修改

本平台有权根据需要修改本协议内容，修改后的协议将在平台公布。继续使用本平台服务即视为同意修改后的协议。

八、争议解决

因本协议产生的争议，双方应友好协商解决；协商不成的，可向本平台所在地人民法院提起诉讼。

九、联系方式

如您对本协议有任何疑问，请通过平台"联系我们"功能与我们取得联系。

本协议自用户注册使用本平台服务之日起生效。`;

const privacyPolicy = `隐私政策

本隐私政策旨在向您说明我们如何收集、使用、存储和保护您的个人信息。请您在使用本平台服务前仔细阅读本政策。

一、信息收集

我们可能收集以下类型的信息：

1. 账户信息
- 微信昵称、头像
- 微信OpenID（用于账户识别）

2. 预约服务信息
- 真实姓名
- 联系方式（手机号、微信号、WhatsApp）
- 行程信息（出发地、目的地、日期等）
- 服务需求描述

3. 设备信息
- 设备型号、操作系统版本
- 网络状态

二、信息使用

我们收集的信息将用于：

1. 提供预约服务
- 处理您的服务预约请求
- 与您联系确认服务详情
- 安排相关服务提供商为您服务

2. 改善服务质量
- 分析用户需求，优化平台功能
- 提供个性化的服务推荐

3. 安全保障
- 验证用户身份
- 防范安全风险和欺诈行为

三、信息存储

1. 您的个人信息将存储在安全的服务器上。
2. 我们采用行业标准的安全措施保护您的信息。
3. 信息保存期限为服务完成后的合理期限，或法律法规要求的期限。

四、信息共享

我们不会向第三方出售您的个人信息。但在以下情况下，我们可能会共享您的信息：

1. 为完成您的预约服务，需要向服务提供商提供必要信息。
2. 根据法律法规要求或政府部门的合法要求。
3. 为保护本平台、用户或公众的权益、财产或安全。

五、信息安全

1. 我们采用加密技术保护数据传输安全。
2. 我们定期审查信息收集、存储和处理做法。
3. 我们限制员工和合作伙伴对个人信息的访问权限。

六、您的权利

您对您的个人信息享有以下权利：

1. 访问权：您可以查看您的账户信息和预约记录。
2. 更正权：您可以更新或更正您的个人信息。
3. 删除权：您可以申请删除您的账户和相关信息。

如需行使上述权利，请通过"联系我们"功能与我们联系。

七、未成年人保护

本平台主要面向成年用户。如果您是未成年人，请在监护人的陪同下使用本平台服务。

八、政策更新

我们可能会不时更新本隐私政策。更新后的政策将在平台公布，继续使用本平台服务即视为同意更新后的政策。

九、联系我们

如您对本隐私政策有任何疑问或建议，请通过平台"联系我们"功能与我们取得联系。

本隐私政策自发布之日起生效。`;

async function initAgreements() {
  try {
    await sequelize.authenticate();
    console.log('数据库连接成功');

    // 更新或创建用户协议
    const [userAgreementConfig, userCreated] = await Config.upsert({
      key: 'user_agreement',
      value: userAgreement,
      type: 'string',
      category: 'agreement',
      description: 'User agreement content'
    });
    console.log(userCreated ? '用户协议已创建' : '用户协议已更新');

    // 更新或创建隐私政策
    const [privacyPolicyConfig, privacyCreated] = await Config.upsert({
      key: 'privacy_policy',
      value: privacyPolicy,
      type: 'string',
      category: 'agreement',
      description: 'Privacy policy content'
    });
    console.log(privacyCreated ? '隐私政策已创建' : '隐私政策已更新');

    console.log('协议内容初始化完成！');
    process.exit(0);
  } catch (error) {
    console.error('初始化失败:', error);
    process.exit(1);
  }
}

initAgreements();
