package com.project.back_end.models;

public class Admin {

// @Entity annotation:
//    - Marks the class as a JPA entity, which means it represents a table in the database.
//    - It is required for persistence frameworks like Hibernate to map the class to a database table.

// 1. 'id' field:
//    - Type: private Long
//    - Description: 
//      - Represents the unique identifier for the Admin entity.
//      - This field is auto-generated by the database using @GeneratedValue with strategy GenerationType.IDENTITY.
//      - It is the primary key of the entity, identified by @Id annotation.

// 2. 'username' field:
//    - Type: private String
//    - Description: 
//      - Represents the username of the admin.
//      - Used to log into the system.
//      - @NotNull validation ensures that this field cannot be null when creating or updating an Admin.

// 3. 'password' field:
//    - Type: private String
//    - Description: 
//      - Represents the password of the admin for authentication.
//      - The field is marked with @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) to prevent the password from being exposed in JSON responses.
//      - @NotNull validation ensures the password cannot be null when creating or updating an Admin.

// 4. Constructor(s):
//    - A no-argument constructor is implicitly provided, required by JPA for entity creation.
//    - A parameterized constructor can be added as needed.

// 5. Getters and Setters:
//    - Standard getter and setter methods are provided for accessing and modifying the fields.

}
