RosterStudentDTO.java
package edu.ucsb.cs156.frontiers.models;
import edu.ucsb.cs156.frontiers.entities.RosterStudent;
import edu.ucsb.cs156.frontiers.enums.OrgStatus;
import edu.ucsb.cs156.frontiers.enums.RosterStatus;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* This is a DTO class that represents a student in the roster.
* It is used to transfer data between the server and the client.
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class RosterStudentDTO {
private Long id;
private Long courseId;
private String studentId;
private String firstName;
private String lastName;
private String email;
private long userId;
private Integer userGithubId;
private String userGithubLogin;
@Enumerated(EnumType.STRING)
private RosterStatus rosterStatus;
@Enumerated(EnumType.STRING)
private OrgStatus orgStatus;
public static RosterStudentDTO from(RosterStudent student) {
long userId = student.getUser() != null ? student.getUser().getId() : 0;
return RosterStudentDTO.builder()
.id(student.getId())
.courseId(student.getCourse().getId())
.studentId(student.getStudentId())
.firstName(student.getFirstName())
.lastName(student.getLastName())
.email(student.getEmail())
.userId(userId)
.userGithubId(student.getGithubId())
.userGithubLogin(student.getGithubLogin())
.rosterStatus(student.getRosterStatus())
.orgStatus(student.getOrgStatus())
.build();
}
}