const { DataTypes } = require('sequelize');
const { sequelize } = require('../config/database-simple');

const CattlePen = sequelize.define('CattlePen', {
  id: {
    type: DataTypes.INTEGER,
    primaryKey: true,
    autoIncrement: true,
    allowNull: false
  },
  name: {
    type: DataTypes.STRING(100),
    allowNull: false,
    comment: '栏舍名称'
  },
  code: {
    type: DataTypes.STRING(50),
    allowNull: false,
    unique: true,
    comment: '栏舍编号'
  },
  type: {
    type: DataTypes.ENUM('育成栏', '产房', '配种栏', '隔离栏', '治疗栏'),
    allowNull: false,
    comment: '栏舍类型'
  },
  capacity: {
    type: DataTypes.INTEGER,
    allowNull: false,
    comment: '栏舍容量'
  },
  currentCount: {
    type: DataTypes.INTEGER,
    allowNull: false,
    defaultValue: 0,
    field: 'current_count',
    comment: '当前牛只数量'
  },
  area: {
    type: DataTypes.DECIMAL(10, 2),
    allowNull: false,
    comment: '面积(平方米)'
  },
  location: {
    type: DataTypes.TEXT,
    allowNull: true,
    comment: '位置描述'
  },
  status: {
    type: DataTypes.ENUM('启用', '停用'),
    allowNull: false,
    defaultValue: '启用',
    comment: '状态'
  },
  remark: {
    type: DataTypes.TEXT,
    allowNull: true,
    comment: '备注'
  },
  farmId: {
    type: DataTypes.INTEGER,
    allowNull: true,
    field: 'farm_id',
    comment: '所属农场ID'
  }
}, {
  tableName: 'cattle_pens',
  timestamps: true,
  createdAt: 'created_at',
  updatedAt: 'updated_at',
  comment: '栏舍设置表'
});

// 关联关系已在 models/index.js 中定义
// CattlePen.associate = (models) => {
//   // 栏舍属于农场
//   CattlePen.belongsTo(models.Farm, {
//     foreignKey: 'farmId',
//     as: 'farm'
//   });

//   // 栏舍有多个动物
//   CattlePen.hasMany(models.Animal, {
//     foreignKey: 'penId',
//     as: 'animals'
//   });
// };

module.exports = CattlePen;
