import { Document } from 'mongoose'; import { IDefaultAttributes } from './commonInterface'; import { ADMISSION_TYPE, BOOLEAN_STATUS, COMMAN_STATUS, EMPLOYMENT_TYPE, FEE_COLLECTION_TYPE, IS_PRINCIPAL, USER_INSTITUTE_META_STATUS, USER_TYPES } from '../constants/app'; import { IUserHasRollNumberModelAttributes } from './userHasRollNumberInterface'; export interface IUserInstituteMetaSlots { slotId: string; isPrimary: boolean; presentStartTime: number; presentEndTime: number; } export interface IUserTrip { tripId: string; pickUpNo: number; dropNo: number; } export interface IStudentFeeService { feeTypeId: string; status: COMMAN_STATUS; startDate: Date; endDate?: Date; isRequired?: boolean; } export interface IUserInstituteMetaAttributes extends IDefaultAttributes, Document { id: string; entities?: string[]; tripDetails?: IUserTrip[]; additionalField?: object; userId: string; instituteId?: string; isInquiryStudent?: boolean; userType: USER_TYPES; status?: USER_INSTITUTE_META_STATUS; endTime?: Date; startTime?: Date; joiningDate?: Date; jobTitle?: string; subJobTitle?: string; jobDescription?: string; employmentType?: EMPLOYMENT_TYPE; isPrincipal?: keyof typeof IS_PRINCIPAL; rollNumber: string; details: BOOLEAN_STATUS; joinDate?: Date; isNewAdmission: BOOLEAN_STATUS; grNumber: string; admissionType: ADMISSION_TYPE; isActive: COMMAN_STATUS; rejectedDate?: Date; slots?: IUserInstituteMetaSlots[]; sidNo?: string; seatNo?: string; secondarySubject?: string[]; lastGreetingDate?: Date; isSyncToSubscriptionPlan?: boolean; academicCalendarId?: string; oldId?: string; previousEntities?: string[]; studentFeeService?: IStudentFeeService[]; studentFeeType?: FEE_COLLECTION_TYPE; isSchoolMeta?: boolean; isFeeCarryForward: boolean; isFeeCollectionCreated: boolean; designationId?: string; studentProfileImage?: string; selectedSportsIds?: string[]; isEligibleForAdvanceTest?: boolean; } export interface IUserWiseData { userId: string; medium: string | null; standard: string | null; board: string | null; stream: string | null; grNumber: string | null; subject: string[]; subMedium: string | null; subStandard: string | null; subBoard: string | null; subStream: string | null; subSubject: string[]; studentString: string; rollNumber?: IUserHasRollNumberModelAttributes[]; studentProfileImage?: string | null; studentProfileImageFilePath?: string | null; section: string | null; subSection: string | null; userInstituteMetaId: string; isActive: COMMAN_STATUS; }