Hithomelabs/CFTunnels#114: Add JavaDoc to User entity

This commit is contained in:
Dave the Dev 2026-04-14 11:51:48 +00:00
parent e8f158aece
commit c6b466530f

View File

@ -1,4 +1,5 @@
package com.hithomelabs.CFTunnels.Entity;
import jakarta.persistence.*;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
@ -8,6 +9,26 @@ import lombok.Setter;
import java.util.UUID;
/**
* JPA Entity representing a user in the system.
*
* <p>This entity stores user information synced from the OIDC provider
* during authentication. Users are assigned roles that determine their
* access levels to the API endpoints.</p>
*
* <p><b>Database Table:</b> {@code users}</p>
*
* <p><b>Roles:</b></p>
* <ul>
* <li>USER - Basic access to view tunnels</li>
* <li>DEVELOPER - Can create/modify mappings</li>
* <li>APPROVER - Can approve/reject requests</li>
* <li>ADMIN - Full access including tunnel configuration</li>
* </ul>
*
* @see Request
* @see Mapping
*/
@Entity
@Getter
@Setter
@ -15,15 +36,32 @@ import java.util.UUID;
@AllArgsConstructor
@Table(name = "users")
public class User {
/**
* Unique identifier for the user (UUID).
*
* <p>This corresponds to the user's ID in the OIDC provider.</p>
*/
@Id
@GeneratedValue
@Column(columnDefinition = "uuid", insertable = false, updatable = false, nullable = false)
private UUID id;
/**
* User's display name.
*
* <p>This is typically the full name from the OIDC provider.</p>
*/
@Column(length = 50, nullable = false)
@Size(max = 50)
private String name;
/**
* User's email address.
*
* <p>Used as the unique identifier for authentication
* and for associating users with their roles.</p>
*/
@Column(length = 50, nullable = false)
@Size(max = 50)
private String email;