Committee | Represents a committee in the application. This class is used to define the properties of a committee, including its name. The Name property is marked as required and serves as the primary key for the committee. |
Period | Represents a period in the application. This class is used to define the properties of a period, including its unique identifier, name, start date, and end date. The Id property serves as the primary key for the period, and the Name property is required with a maximum length of 50 characters. The StartDate and EndDate properties are also required, indicating the beginning and end of the period. |
PossibleTask | Represents a possible task in the application. This class is used to define the properties of a task, including its unique identifier, description, short description, points, active status, and maximum allowed tasks per period. The Id property serves as the primary key for the task, and the Description and ShortDescription properties are required with specified maximum lengths. The Points property is required and must be within a specified range. The IsActive property indicates whether the task is currently active, and the MaxPerPeriod property indicates the maximum number of times this task can be completed in a given period. |
SubmitTaskRequestDto | Represents a data transfer object (DTO) for submitting a task. This class is used to encapsulate the data required to submit a task, including the task ID, committee name, and the image file associated with the submission. |
SubmittedTask | Represents a submitted task in the application. This class is used to define the properties of a task that has been submitted by a user including its unique identifier, the ID of the possible task it relates to, the date it was submitted, the committee it was submitted to, the path to the image associated with the submission, its status, points awarded, and any rejection reason if applicable. The Id property serves as the primary key for the submitted task, the PossibleTaskId property is a foreign key linking to the PossibleTask entity, the SubmittedAt property indicates when the task was submitted, the Committee property indicates which committee the task was submitted to, the ImagePath property stores the path to the image associated with the submission, the Status property indicates the current status of the task (Pending, Approved, or Rejected), the Points property indicates the points awarded for the task, and the RejectionReason property provides a reason for rejection if the task was not approved. The MaxPerPeriod property indicates the maximum number of times this task can be completed in a given period. |