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; }