package com.sn.sowsysrestapi.domain.entity;

import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.persistence.*;

@Data
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
@Entity
public class ProfilePicture {

    @EqualsAndHashCode.Include
    @Id
    @Column(name = "user_id")
    private Long id;

    @Column(name = "owner_code")
    private String ownerCode;

    @Column(name = "file_name")
    private String fileName;

    @Column(name = "description")
    private String description;

    @Column(name = "content_type")
    private String contentType;

    @Column(name = "file_size")
    private Long fileSize;

    @OneToOne(fetch = FetchType.LAZY)
    @MapsId
    private User user;

    @PrePersist
    public void pictureCodeGenerator() {

        String userCode = getUser().getUserCode();

        setOwnerCode(userCode);

    }

    public Long getUserId() {

        if (getUser() != null) {
            return getUser().getId();
        }

        return null;

    }

    public String getUserCode() {

        if (getUser() != null) {
            return getUser().getUserCode();
        }

        return null;

    }

}
