42 lines
961 B
TypeScript
42 lines
961 B
TypeScript
import { Column, DataType, HasMany, Model, Table } from 'sequelize-typescript';
|
|
import { Exercise } from './exercise.model';
|
|
|
|
@Table({
|
|
tableName: 't_exercise_categories',
|
|
underscored: true,
|
|
})
|
|
export class ExerciseCategory extends Model {
|
|
@Column({
|
|
type: DataType.STRING,
|
|
primaryKey: true,
|
|
comment: '分类唯一键(英文/下划线)',
|
|
})
|
|
declare key: string;
|
|
|
|
@Column({
|
|
type: DataType.STRING,
|
|
allowNull: false,
|
|
comment: '分类中文名称',
|
|
})
|
|
declare name: string;
|
|
|
|
@Column({
|
|
type: DataType.INTEGER,
|
|
allowNull: false,
|
|
defaultValue: 0,
|
|
comment: '排序(升序)',
|
|
})
|
|
declare sortOrder: number;
|
|
|
|
@HasMany(() => Exercise, { foreignKey: 'categoryKey', sourceKey: 'key' })
|
|
declare exercises: Exercise[];
|
|
|
|
@Column({ type: DataType.DATE, defaultValue: DataType.NOW })
|
|
declare createdAt: Date;
|
|
|
|
@Column({ type: DataType.DATE, defaultValue: DataType.NOW })
|
|
declare updatedAt: Date;
|
|
}
|
|
|
|
|