79 lines
1.6 KiB
JavaScript
79 lines
1.6 KiB
JavaScript
const { DataTypes } = require('sequelize');
|
|
const { sequelize } = require('../config/db');
|
|
|
|
const Pet = sequelize.define('Pet', {
|
|
id: {
|
|
type: DataTypes.INTEGER,
|
|
autoIncrement: true,
|
|
primaryKey: true,
|
|
},
|
|
userId: {
|
|
type: DataTypes.INTEGER,
|
|
allowNull: false,
|
|
comment: 'Reference to User table',
|
|
},
|
|
name: {
|
|
type: DataTypes.STRING,
|
|
allowNull: false,
|
|
},
|
|
species: {
|
|
type: DataTypes.STRING,
|
|
allowNull: false,
|
|
comment: 'Species Name (e.g. 강아지)',
|
|
},
|
|
breed: {
|
|
type: DataTypes.STRING,
|
|
allowNull: false,
|
|
comment: 'Breed Name (e.g. 말티즈)',
|
|
},
|
|
gender: {
|
|
type: DataTypes.STRING,
|
|
allowNull: false,
|
|
comment: '남아, 여아, 기타',
|
|
},
|
|
isNeutered: {
|
|
type: DataTypes.BOOLEAN,
|
|
defaultValue: false,
|
|
},
|
|
birthDate: {
|
|
type: DataTypes.DATEONLY,
|
|
allowNull: true,
|
|
},
|
|
isDateUnknown: {
|
|
type: DataTypes.BOOLEAN,
|
|
defaultValue: false,
|
|
},
|
|
weight: {
|
|
type: DataTypes.FLOAT,
|
|
allowNull: true,
|
|
},
|
|
registrationNumber: {
|
|
type: DataTypes.STRING,
|
|
allowNull: true,
|
|
},
|
|
profileImagePath: {
|
|
type: DataTypes.STRING,
|
|
allowNull: true,
|
|
comment: 'Relative path to uploaded image',
|
|
},
|
|
diseases: {
|
|
type: DataTypes.TEXT,
|
|
allowNull: true,
|
|
comment: 'JSON string of current diseases',
|
|
},
|
|
pastDiseases: {
|
|
type: DataTypes.TEXT,
|
|
allowNull: true,
|
|
comment: 'JSON string of past diseases',
|
|
},
|
|
healthConcerns: {
|
|
type: DataTypes.TEXT,
|
|
allowNull: true,
|
|
comment: 'JSON string of health concerns',
|
|
},
|
|
}, {
|
|
timestamps: true,
|
|
});
|
|
|
|
module.exports = Pet;
|