개발이 좋아서/Spring이 좋아서

[Backend] - 로그인 및 회원가입(회원가입_dto, model, vo)

zoaseo 2022. 10. 25. 14:32

1) dto

MemberInfoDTO

package clonestudy.clonestudy.member.dto;

import lombok.Builder;
import lombok.Data;

import java.time.LocalDateTime;

@Data
@Builder
public class MemberInfoDTO {
    private int id;

    private String name;

    private String email;

    private String phoneNum;

    private String nickname;

    private boolean sex; //0: 남성, 1: 여성

    private String birthdate;

    private LocalDateTime regDate;

    private int loginCount;

    private LocalDateTime firstLogin;

    private LocalDateTime lastLogin;

    private int loginFailCount;
}

2) model

Member

package clonestudy.clonestudy.member.model;

import io.swagger.annotations.ApiModel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.hibernate.annotations.ColumnDefault;

import javax.persistence.*;
import java.time.LocalDateTime;

@Getter
@NoArgsConstructor
@ApiModel("사용자 정보 테이블")
@Entity
@Table(name = "member")
public class Member {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", nullable = false)
    private int id;

    @Column(name = "name", nullable = false, length = 30)
    private String name;

    @Column(name = "email", nullable = false, length = 30)
    private String email;

    @Column(name = "phone_num", nullable = false, length = 20)
    private String phoneNum;

    @Column(name = "pwd", nullable = false, length = 100)
    private String pwd;

    @Column(name = "nickname", nullable = false, length = 30)
    private String nickname;

    @Column(name = "sex", nullable = false) //0: 남성, 1: 여성
    private boolean sex;

    @Column(name = "birthdate", nullable = false, length = 20)
    private String birthdate;

    @Column(name = "regdate", nullable = false, columnDefinition = "DATETIME DEFAULT NOW()")
    private LocalDateTime regDate;

    @Setter
    @Column(name = "login_count", nullable = false)
    @ColumnDefault("0")
    private int loginCount;

    @Setter
    @Column(name = "first_login", nullable = true)
    private LocalDateTime firstLogin;

    @Setter
    @Column(name = "last_login", nullable = true)
    private LocalDateTime lastLogin;

    @Setter
    @Column(name = "login_fail_count", nullable = false)
    @ColumnDefault("0")
    private int loginFailCount;

    @Builder
    public Member(String name, String email, String phoneNum, String pwd, String nickname, boolean sex, String birthdate, LocalDateTime regDate){
        this.name = name;
        this.email = email;
        this.phoneNum = phoneNum;
        this.pwd = pwd;
        this.nickname = nickname;
        this.sex = sex;
        this.birthdate = birthdate;
        this.regDate = regDate;
    }
}

3) vo

MemberRegVO

package clonestudy.clonestudy.member.vo;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;

@Getter
@AllArgsConstructor
@Builder
public class MemberRegVO {

    @NotBlank
    @ApiModelProperty("사용자 이름")
    private String name;

    @NotBlank @Email
    @ApiModelProperty("사용자 이메일")
    private String email;

    @NotBlank
    @ApiModelProperty("사용자 전화번호")
    private String phoneNum;

    @NotBlank
    @ApiModelProperty("사용자 비밀번호")
    private String pwd;

    @NotBlank
    @ApiModelProperty("사용자 닉네임")
    private String nickname;

//    @NotNull
    @ApiModelProperty(value = "사용자 성별", notes = "false : 남성, true : 여성")
    private boolean sex;

    @NotBlank
    @ApiModelProperty("사용자 생년월일")
    private String birthdate;
}
댓글수0