52 lines
1.1 KiB
TypeScript
52 lines
1.1 KiB
TypeScript
// src/app/model/Professor.ts
|
|
import { WorkingStatus } from '../enum/WorkingStatus';
|
|
import { ProfessorCategory } from '../enum/professor-category.enum';
|
|
|
|
export interface Professor {
|
|
id?: number;
|
|
professorId: string;
|
|
firstName: string;
|
|
lastName: string;
|
|
email: string;
|
|
department: string;
|
|
position: string;
|
|
officeLocation: string;
|
|
joinDate: Date;
|
|
profileImageUrl: string;
|
|
status: WorkingStatus;
|
|
category: ProfessorCategory;
|
|
|
|
/**
|
|
* Controls display order on the public frontend.
|
|
* Lower = appears first. Set via the admin drag-and-drop reorder UI.
|
|
*/
|
|
displayOrder?: number;
|
|
|
|
// Additional fields for Next.js integration
|
|
phone?: string;
|
|
specialty?: string;
|
|
certification?: string;
|
|
training?: string;
|
|
experience?: string;
|
|
description?: string;
|
|
designation?: string;
|
|
workDays?: string[];
|
|
|
|
// Awards and skills
|
|
awards?: Award[];
|
|
skills?: Skill[];
|
|
}
|
|
|
|
export interface Award {
|
|
id?: number;
|
|
title: string;
|
|
year: string;
|
|
description: string;
|
|
imageUrl?: string;
|
|
}
|
|
|
|
export interface Skill {
|
|
id?: number;
|
|
name: string;
|
|
level?: number;
|
|
} |