import { useState } from 'react';
import { Modal, Form, Input, Radio, message } from 'antd';
import { useProjectStore } from '../stores/useProjectStore';
import { projectApi } from '../api/projectApi';

const { TextArea } = Input;

export const CreateProjectDialog = () => {
  const [form] = Form.useForm();
  const [loading, setLoading] = useState(false);
  const { showCreateDialog, setShowCreateDialog, addProject } = useProjectStore();

  const handleOk = async () => {
    try {
      const values = await form.validateFields();
      setLoading(true);
      
      // 调用真实API创建项目
      const response = await projectApi.createProject({
        name: values.name,
        background: values.background || '',
        researchType: values.researchType,
      });
      
      if (response.success && response.data) {
        addProject(response.data);
        message.success(response.message || '项目创建成功');
        form.resetFields();
        setShowCreateDialog(false);
      } else {
        message.error(response.message || '项目创建失败');
      }
    } catch (error) {
      console.error('创建项目失败:', error);
      message.error('项目创建失败');
    } finally {
      setLoading(false);
    }
  };

  const handleCancel = () => {
    form.resetFields();
    setShowCreateDialog(false);
  };

  return (
    <Modal
      title="创建新项目"
      open={showCreateDialog}
      onOk={handleOk}
      onCancel={handleCancel}
      width={600}
      okText="创建"
      cancelText="取消"
      confirmLoading={loading}
    >
      <Form
        form={form}
        layout="vertical"
        initialValues={{ researchType: 'observational' }}
      >
        <Form.Item
          name="name"
          label="项目名称"
          rules={[
            { required: true, message: '请输入项目名称' },
            { max: 100, message: '项目名称不能超过100个字符' },
          ]}
        >
          <Input placeholder="例如：心血管疾病与生活方式关系研究" />
        </Form.Item>

        <Form.Item
          name="researchType"
          label="研究类型"
          rules={[{ required: true, message: '请选择研究类型' }]}
        >
          <Radio.Group>
            <Radio value="observational">观察性研究</Radio>
            <Radio value="interventional">干预性研究</Radio>
          </Radio.Group>
        </Form.Item>

        <Form.Item
          name="background"
          label="项目背景"
          tooltip="可以包括：研究背景、目标人群、研究目的等"
        >
          <TextArea
            rows={6}
            placeholder="请详细描述项目背景信息，AI将基于这些信息提供更精准的建议...

例如：
研究背景：心血管疾病是全球主要死因之一...
目标人群：18-65岁成年人
研究目的：探索生活方式与心血管疾病的关系"
            maxLength={2000}
            showCount
          />
        </Form.Item>
      </Form>
    </Modal>
  );
};

