// src/app/services/medicine.service.ts
import { Injectable } from '@angular/core';
import { Observable, of, throwError } from 'rxjs';
import { catchError } from 'rxjs/operators';

export interface Medicine {
  id: number;
  name: string;
  price: number;
  description: string;
  imageUrl: string;
  usage?: string; // 可选属性
  precautions?: string; // 可选属性
  sideEffects?: string; // 可选属性
}

@Injectable({
  providedIn: 'root'
})
export class MedicineService {

  private medicines: Medicine[] = [
    {
      id: 1,
      name: '阿司匹林',
      price: 15.99,
      description: '用于缓解轻度至中度疼痛...',
      imageUrl: '../assets/images/药1.png',
      usage: '成人常用量：口服，一次0.3-0.6g，每日3次...',
      precautions: '不宜长期大量服用...',
      sideEffects: '可能出现恶心、呕吐、上腹部不适或疼痛...'
    },
    {
      id: 2,
      name: '布洛芬',
      price: 12.99,
      description: '非甾体抗炎药...',
      imageUrl: '../assets/images/药2.png',
      usage: '成人及12岁以上儿童，一次1片，若持续疼痛或发热，可间隔4~6小时重复用药一次...',
      precautions: '本品最好在饭后服用...',
      sideEffects: '少数患者可能会出现消化不良、胃痛、头痛等症状...'
    },
    // {
    //     id: 3,
    //     name: '对乙酰氨基酚',
    //     price: 8.99,
    //     description: '用于缓解轻至中度疼痛，如头痛、关节痛、神经痛等，也用于退热...',
    //     imageUrl: '../assets/images/doctor.png', // 确保图片路径正确
    //     usage: '成人常用量：口服，一次500mg，每4-6小时一次，24小时内不超过4g...',
    //     precautions: '肝肾功能不全者慎用；避免饮酒或含酒精饮料的同时服用...',
    //     sideEffects: '偶见皮疹、荨麻疹、药物热及粒细胞减少；长期大量用药会导致肝肾功能异常...'
    //   },
    
    // 添加更多药品...
  ];

  getMedicineById(id: number): Observable<Medicine> {
    const medicine = this.medicines.find(m => m.id === id);

    if (medicine) {
      return of(medicine);
    } else {
      // 如果没有找到对应的药品，可以选择抛出一个错误或返回一个默认的对象
      // 这里选择抛出一个错误，以便在页面上显示友好的错误信息
      return throwError(() => new Error('Medicine not found'));
    }
  }
}