Spaces:
Sleeping
Sleeping
| import { | |
| Entity, | |
| PrimaryGeneratedColumn, | |
| Column, | |
| ManyToOne, | |
| JoinColumn, | |
| CreateDateColumn, | |
| UpdateDateColumn, | |
| } from 'typeorm'; | |
| import type { Relation } from 'typeorm'; | |
| import type { User } from '../../auth/entities/user.entity'; | |
| export enum TaskType { | |
| ASSIGNMENT = 'assignment', | |
| QUIZ = 'quiz', | |
| LAB = 'lab', | |
| STUDY = 'study', | |
| CUSTOM = 'custom', | |
| } | |
| export enum TaskPriority { | |
| LOW = 'low', | |
| MEDIUM = 'medium', | |
| HIGH = 'high', | |
| } | |
| export enum TaskStatus { | |
| PENDING = 'pending', | |
| IN_PROGRESS = 'in_progress', | |
| COMPLETED = 'completed', | |
| OVERDUE = 'overdue', | |
| } | |
| ('student_tasks') | |
| export class StudentTask { | |
| ({ name: 'task_id', type: 'bigint', unsigned: true }) | |
| taskId: number; | |
| ({ name: 'user_id', type: 'bigint', unsigned: true }) | |
| userId: number; | |
| ({ name: 'task_type', type: 'enum', enum: TaskType }) | |
| taskType: TaskType; | |
| ({ name: 'assignment_id', type: 'bigint', unsigned: true, nullable: true }) | |
| assignmentId: number | null; | |
| ({ name: 'quiz_id', type: 'bigint', unsigned: true, nullable: true }) | |
| quizId: number | null; | |
| ({ name: 'lab_id', type: 'bigint', unsigned: true, nullable: true }) | |
| labId: number | null; | |
| ({ name: 'title', type: 'varchar', length: 255 }) | |
| title: string; | |
| ({ name: 'description', type: 'text', nullable: true }) | |
| description: string | null; | |
| ({ name: 'due_date', type: 'timestamp', nullable: true }) | |
| dueDate: Date | null; | |
| ({ name: 'priority', type: 'enum', enum: TaskPriority, default: TaskPriority.MEDIUM }) | |
| priority: TaskPriority; | |
| ({ name: 'status', type: 'enum', enum: TaskStatus, default: TaskStatus.PENDING }) | |
| status: TaskStatus; | |
| ({ name: 'completion_percentage', type: 'int', default: 0 }) | |
| completionPercentage: number; | |
| ({ name: 'created_at', type: 'timestamp' }) | |
| createdAt: Date; | |
| ({ name: 'updated_at', type: 'timestamp' }) | |
| updatedAt: Date; | |
| ('User') | |
| ({ name: 'user_id' }) | |
| user: Relation<User>; | |
| } | |