<template>
  <div class="pig-sick-logs-view">
    <GenericMonitorList
      :fetchData="fetchPigSickLogs"
      :columnsConfig="pigSickLogColumns"
    />
  </div>
</template>

<script setup>
import GenericMonitorList from '../../components/GenericMonitorList.vue';
import { getPigSickLogs } from '../../api/monitor.js';
import { formatRFC3339 } from '../../utils/format.js';

// 适配通用组件的 fetchData prop
const fetchPigSickLogs = async (params) => {
  return await getPigSickLogs(params);
};

// 定义表格的列，依据 swagger.json
const pigSickLogColumns = [
  {
    title: '记录ID',
    dataIndex: 'id',
    key: 'id',
    sorter: true,
    minWidth: 100,
  },
  {
    title: '猪批次ID',
    dataIndex: 'pig_batch_id',
    key: 'pig_batch_id',
    filterType: 'number',
    sorter: true,
    minWidth: 120,
  },
  {
    title: '猪栏ID',
    dataIndex: 'pen_id',
    key: 'pen_id',
    filterType: 'number',
    sorter: true,
    minWidth: 120,
  },
  {
    title: '原因',
    dataIndex: 'reason',
    key: 'reason',
    filterType: 'select',
    filterOptions: [
      { text: '患病', value: '患病' },
      { text: '康复', value: '康复' },
      { text: '死亡', value: '死亡' },
      { text: '淘汰', value: '淘汰' },
      { text: '转入', value: '转入' },
      { text: '转出', value: '转出' },
      { text: '其他', value: '其他' },
    ],
    minWidth: 120,
  },
  {
    title: '治疗地点',
    dataIndex: 'treatment_location',
    key: 'treatment_location',
    filterType: 'select',
    filterOptions: [
        { text: '原地治疗', value: '原地治疗' },
        { text: '病猪栏治疗', value: '病猪栏治疗' },
    ],
    minWidth: 130,
  },
  {
    title: '变更数量',
    dataIndex: 'change_count',
    key: 'change_count',
    sorter: true,
    minWidth: 120,
  },
  {
    title: '发生时间',
    dataIndex: 'happened_at',
    key: 'happened_at',
    sorter: true,
    filterType: 'dateRange',
    formatter: (row, column, cellValue) => formatRFC3339(cellValue),
    minWidth: 180,
  },
  {
    title: '操作员ID',
    dataIndex: 'operator_id',
    key: 'operator_id',
    filterType: 'number',
    minWidth: 120,
  },
  {
    title: '备注',
    dataIndex: 'remarks',
    key: 'remarks',
    minWidth: 200,
  },
];
</script>

<style scoped>
/* 视图容器样式 */
</style>
