0a9588abb7
- Add pagination support to findAll (page, limit query params) - Add findByTemplateId method to service - Add GET /by-template/:templateId endpoint to controller - Service already includes CRUD for QuestionBank and QuestionBankItem
33 lines
1.3 KiB
TypeScript
33 lines
1.3 KiB
TypeScript
import { MigrationInterface, QueryRunner } from 'typeorm';
|
|
|
|
export class CreateFeishuAssessmentSessionTable1773200000001 implements MigrationInterface {
|
|
name = 'CreateFeishuAssessmentSessionTable1773200000001';
|
|
|
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
await queryRunner.query(`
|
|
CREATE TABLE feishu_assessment_sessions (
|
|
id VARCHAR(36) PRIMARY KEY,
|
|
bot_id VARCHAR(36) NOT NULL,
|
|
open_id VARCHAR(255) NOT NULL,
|
|
assessment_session_id VARCHAR(36) NOT NULL,
|
|
status ENUM('active', 'completed', 'cancelled') DEFAULT 'active',
|
|
current_question_index INT DEFAULT 0,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
INDEX idx_bot_open (bot_id, open_id),
|
|
INDEX idx_assessment_session (assessment_session_id),
|
|
CONSTRAINT fk_feishu_assessment_bot
|
|
FOREIGN KEY (bot_id)
|
|
REFERENCES feishu_bots(id)
|
|
ON DELETE CASCADE
|
|
);
|
|
`);
|
|
}
|
|
|
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
await queryRunner.query(`
|
|
DROP TABLE feishu_assessment_sessions;
|
|
`);
|
|
}
|
|
}
|