namespace ca.mcgill.ecse321.TAMAS;

  

class ManagementSystem{

  1 <@>- * Course courses;

  1 <@>- * Instructor instructors;

  1 <@>- 1..* Applicant applicants;
  
  1 <@>- * JobPosting;
  
}

class Instructor{
  String name;
}

class Course{

  1 <@>- * CourseComponent courseComponents;

  1 <@>- 1 Allocation courseJobAllocation; 

  1 <@>- * JobPosting jobPosting;

  * courses -- 1 Instructor;

  1 <@>- * OfferedJob;

  String semester;

  String courseCoude;

  Integer numTutorial;

  Integer numLab;

  Integer numStudent;

  Integer credit;

  Integer hourRequiredTa;

  Integer hourRequiredGrader;

  Double budgetCalculated;

}



class CourseComponent{

  String hour;

  String sessionCode;

  component {TUTORIAL{} LAB{}}

}



class JobPosting{

  String jobTitle;

  Date submissionDeadline;

  String perferredExperience;

  Integer numNeeded;

  Double hourRate;

}



class Applicant{

  * -- 1 Allocation;

  1 -- 0..3 OfferedJob offeredJobs;

  Integer studentID;

  String name;

  String previousExperience;

  Boolean isUnderGraduated;

  String preferredCourse;
  
  String major;
  
  Integer year;
  
  String option1;
  
  String option2;
  
  String option3;
  
  Integer totalAppointmentHours;
}



class Application{

  * -- 1..3 JobPosting;

  0..3 -- * Applicant;

  String applicationStatus;

}





class OfferedJob{

  String offerDescription;
  
  job{ TA{} GRADER{} }

}



class TAJob{

   isA OfferedJob;

   Integer appointmentHour;
	
}



class GraderJob{

   isA OfferedJob;

}



class Allocation{

}
