CourseStaffDTO.java
package edu.ucsb.cs156.frontiers.models;
import com.opencsv.bean.CsvBindByName;
import edu.ucsb.cs156.frontiers.entities.CourseStaff;
import edu.ucsb.cs156.frontiers.enums.OrgStatus;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/** CSV export DTO for course staff downloads. */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CourseStaffDTO {
@CsvBindByName(column = "id")
private Long id;
@CsvBindByName(column = "courseId")
private Long courseId;
@CsvBindByName(column = "userId")
private Long userId;
@CsvBindByName(column = "firstName")
private String firstName;
@CsvBindByName(column = "lastName")
private String lastName;
@CsvBindByName(column = "email")
private String email;
@CsvBindByName(column = "orgStatus")
private OrgStatus orgStatus;
@CsvBindByName(column = "githubId")
private Integer githubId;
@CsvBindByName(column = "githubLogin")
private String githubLogin;
@CsvBindByName(column = "role")
private String role;
public CourseStaffDTO(CourseStaff courseStaff) {
this(
courseStaff.getId(),
courseStaff.getCourse().getId(),
courseStaff.getUser() != null ? courseStaff.getUser().getId() : 0L,
courseStaff.getFirstName(),
courseStaff.getLastName(),
courseStaff.getEmail(),
courseStaff.getOrgStatus(),
courseStaff.getGithubId(),
courseStaff.getGithubLogin(),
courseStaff.getRole());
}
}