/**
 * 养殖场管理模块 Swagger 文档
 * @file swagger-farms.js
 * @description 养殖场管理相关的 Swagger API 文档定义
 */

// 养殖场管理相关的 API 路径定义
const farmsPaths = {
  '/api/farms': {
    get: {
      summary: '获取所有养殖场',
      tags: ['养殖场管理'],
      parameters: [
        { $ref: '#/components/parameters/PageParam' },
        { $ref: '#/components/parameters/LimitParam' },
        { $ref: '#/components/parameters/SearchParam' }
      ],
      responses: {
        200: { $ref: '#/components/responses/Success' }
      }
    },
    post: {
      summary: '创建新养殖场',
      tags: ['养殖场管理'],
      requestBody: {
        required: true,
        content: {
          'application/json': {
            schema: { $ref: '#/components/schemas/FarmInput' }
          }
        }
      },
      responses: {
        201: { $ref: '#/components/responses/Created' },
        400: { $ref: '#/components/responses/BadRequest' }
      }
    }
  },
  '/api/farms/{id}': {
    get: {
      summary: '根据ID获取养殖场',
      tags: ['养殖场管理'],
      parameters: [{ $ref: '#/components/parameters/IdParam' }],
      responses: {
        200: { $ref: '#/components/responses/Success' },
        404: { $ref: '#/components/responses/NotFound' }
      }
    },
    put: {
      summary: '更新养殖场信息',
      tags: ['养殖场管理'],
      parameters: [{ $ref: '#/components/parameters/IdParam' }],
      requestBody: {
        required: true,
        content: {
          'application/json': {
            schema: { $ref: '#/components/schemas/FarmInput' }
          }
        }
      },
      responses: {
        200: { $ref: '#/components/responses/Success' },
        404: { $ref: '#/components/responses/NotFound' }
      }
    },
    delete: {
      summary: '删除养殖场',
      tags: ['养殖场管理'],
      parameters: [{ $ref: '#/components/parameters/IdParam' }],
      responses: {
        200: { $ref: '#/components/responses/Success' },
        404: { $ref: '#/components/responses/NotFound' }
      }
    }
  },
  '/api/farms/search': {
    get: {
      summary: '搜索养殖场',
      tags: ['养殖场管理'],
      parameters: [
        { $ref: '#/components/parameters/SearchParam' }
      ],
      responses: {
        200: { $ref: '#/components/responses/Success' }
      }
    }
  }
};

// 养殖场管理相关的数据模型定义
const farmsSchemas = {
  Farm: {
    type: 'object',
    properties: {
      id: { type: 'integer', description: '养殖场ID' },
      name: { type: 'string', description: '养殖场名称' },
      address: { type: 'string', description: '地址' },
      contact: { type: 'string', description: '联系人' },
      phone: { type: 'string', description: '联系电话' },
      area: { type: 'number', description: '面积（平方米）' },
      capacity: { type: 'integer', description: '容量（头）' },
      createdAt: { type: 'string', format: 'date-time', description: '创建时间' },
      updatedAt: { type: 'string', format: 'date-time', description: '更新时间' }
    }
  },
  FarmInput: {
    type: 'object',
    required: ['name'],
    properties: {
      name: { type: 'string', description: '养殖场名称' },
      address: { type: 'string', description: '地址' },
      contact: { type: 'string', description: '联系人' },
      phone: { type: 'string', description: '联系电话' },
      area: { type: 'number', description: '面积（平方米）' },
      capacity: { type: 'integer', description: '容量（头）' }
    }
  }
};

module.exports = {
  farmsPaths,
  farmsSchemas
};

