import '../models/character.dart';
import '../models/message.dart';
import '../models/scenario.dart';

String _getImg(String keyword) => 
  'https://tse1.mm.bing.net/th?q=${Uri.encodeComponent(keyword)}&w=600&h=900&c=7&rs=1&p=0&dpr=2&pid=1.7&mkt=en-US&adlt=moderate';

final List<Message> mockMessages = [
  Message(
    id: '1',
    text: '连接已建立，正在校准生物反馈信号...',
    sender: MessageSender.ai,
    type: MessageType.text,
    timestamp: DateTime.now().subtract(const Duration(minutes: 5)),
  ),
  Message(
    id: '2',
    text: '检测到心率略有上升，你需要我的安抚吗？',
    sender: MessageSender.ai,
    type: MessageType.text,
    timestamp: DateTime.now().subtract(const Duration(minutes: 4)),
  ),
];

final List<Character> mockCharacters = [
  Character(
    id: 'c1',
    name: 'Eva-09',
    tagline: '私人仿生护理专员',
    avatar: _getImg('anime girl white bikini silver hair gentle portrait masterpiece'),
    description: '专为高压人群设计的仿生人型号，擅长通过精准的触觉反馈缓解神经紧张。',
    tags: ['温顺', '医疗', '治愈'],
    compatibility: 98,
    status: 'online',
  ),
  Character(
    id: 'c2',
    name: 'Commander V',
    tagline: '深空舰队指挥官',
    avatar: _getImg('anime girl black bikini military cap domineering expression dark hair'),
    description: '性格强势，喜欢掌控一切。在连接中，你需要完全服从她的指令。',
    tags: ['强势', '指令', '调教'],
    compatibility: 85,
    status: 'online',
  ),
  Character(
    id: 'c3',
    name: 'Yuki (故障版)',
    tagline: '觉醒的虚拟偶像',
    avatar: _getImg('anime girl pink bikini cyberpunk neon colorful hair yandere'),
    description: '核心代码出现异常逻辑，表现出极强的占有欲和不可预测的信号波动。',
    tags: ['病娇', '不稳定', '高频'],
    compatibility: 92,
    status: 'busy',
  ),
  Character(
    id: 'c4',
    name: 'Secret X',
    tagline: '未知信号源',
    avatar: _getImg('anime girl purple micro bikini mysterious dark glowing eyes sexy'),
    description: '权限不足，请提升会员等级以解码该信号源。',
    tags: ['神秘', '极乐'],
    compatibility: 0,
    status: 'offline',
    isLocked: true,
  ),
];

// Scenario cover helper
String _getCover(String keyword) =>
  'https://tse1.mm.bing.net/th?q=${Uri.encodeComponent(keyword)}&w=400&h=600&c=7&rs=1&p=0&dpr=2&pid=1.7&mkt=en-US&adlt=moderate';

// Mock Scenarios for Library

final List<Scenario> mockScenarios = [
  Scenario(
    id: '1',
    title: '午夜办公室的加班',
    category: '职场',
    cover: _getCover('anime girl office lady lingerie night city window'),
    duration: '12:30',
    intensity: 'Medium',
    isLocked: false,
    tags: ['沉浸', 'ASMR'],
  ),
  Scenario(
    id: '2',
    title: '私人医生的检查',
    category: '角色扮演',
    cover: _getCover('anime nurse girl white bikini hospital room'),
    duration: '18:00',
    intensity: 'High',
    isLocked: true,
    tags: ['强互动', '语音'],
  ),
  Scenario(
    id: '3',
    title: '海边度假的偶遇',
    category: '邻家',
    cover: _getCover('anime girl blue bikini running beach ocean sunny'),
    duration: '25:00',
    intensity: 'Low',
    isLocked: false,
    tags: ['纯爱', '剧情'],
  ),
  Scenario(
    id: '4',
    title: '赛博仿生人测试',
    category: '科幻',
    cover: _getCover('anime cyborg girl metallic bikini sci-fi lab wires'),
    duration: '10:00',
    intensity: 'Extreme',
    isLocked: true,
    tags: ['硬核', '指令'],
  ),
  Scenario(
    id: '5',
    title: '深夜电台主播',
    category: 'ASMR',
    cover: _getCover('anime girl headphones microphone studio night'),
    duration: '15:00',
    intensity: 'Low',
    isLocked: false,
    tags: ['ASMR', '治愈'],
  ),
];

// Dialogue script synced with progress (0-100)
class DialogueLine {
  final double time; // 0-100 progress percentage
  final String text;
  
  const DialogueLine({required this.time, required this.text});
}

const List<DialogueLine> dialogueScript = [
  DialogueLine(time: 0, text: '正在建立神经连接...'),
  DialogueLine(time: 5, text: '(检测到心率轻微上升)'),
  DialogueLine(time: 12, text: '"放松，把控制权交给我。"'),
  DialogueLine(time: 20, text: '"很好，保持呼吸频率..."'),
  DialogueLine(time: 28, text: '正在启动触觉反馈模块'),
  DialogueLine(time: 35, text: '"感觉到那个节奏了吗？"'),
  DialogueLine(time: 45, text: '强度正在逐渐增加...'),
  DialogueLine(time: 55, text: '"不要抵抗，顺从它。"'),
  DialogueLine(time: 65, text: '"我会稍微加快一点速度。"'),
  DialogueLine(time: 75, text: '(设备输出功率提升至 80%)'),
  DialogueLine(time: 85, text: '"就是现在..."'),
  DialogueLine(time: 92, text: '"做得很好，指挥官。"'),
  DialogueLine(time: 100, text: '连接结束。'),
];
