diff --git a/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUserModel.java b/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUserModel.java new file mode 100644 index 000000000..788dc5a4f --- /dev/null +++ b/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUserModel.java @@ -0,0 +1,24 @@ +package com.codedifferently.lesson25.models; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import java.util.UUID; + +@Entity +@Table(name = "library_users") +public class LibraryUserModel { + + @Id public UUID id; + public String email; + + @Column(name = "first_name") + public String firstName; + + @Column(name = "last_name") + public String lastName; + + @Column(name = "password_hash") + public String passwordHash; +} diff --git a/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/repository/LibraryUserRepository.java b/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/repository/LibraryUserRepository.java new file mode 100644 index 000000000..68e342050 --- /dev/null +++ b/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/repository/LibraryUserRepository.java @@ -0,0 +1,12 @@ +package com.codedifferently.lesson25.repository; + +import com.codedifferently.lesson25.models.LibraryUserModel; +import java.util.List; +import java.util.UUID; +import org.springframework.data.repository.CrudRepository; + +public interface LibraryUserRepository extends CrudRepository { + + @Override + List findAll(); +} diff --git a/lesson_25/db/db_app/src/main/resources/queries/danielsonadjocy.sql b/lesson_25/db/db_app/src/main/resources/queries/danielsonadjocy.sql new file mode 100644 index 000000000..f45ca5afb --- /dev/null +++ b/lesson_25/db/db_app/src/main/resources/queries/danielsonadjocy.sql @@ -0,0 +1,27 @@ +select type , COUNT(*) as count +from mediaItems group by type; + +select SUM(pages) as total_pages +from checked_out_items INNER JOIN mediaItems +ON checked_out_items.item_id = mediaItems.id +where mediaItems.pages IS NOT NULL; + + +select guests.id, guests.name, checked_out_items.item_id, checked_out_items.checked_out_date +from guests +left join checked_out_items on guests.id = checked_out_items.guest_id; + +CREATE Table library_users ( + id UUID PRIMARY KEY, + email VARCHAR(100) UNIQUE NOT NULL, + first_name VARCHAR(50) NOT NULL, + last_name VARCHAR(50) NOT NULL, + password_hash CHAR(60) NOT NULL +); + +-- Inserting users: passwords are all "password123" hashed with bcrypt. +INSERT INTO library_users (id, email, first_name, last_name, password_hash) VALUES +('550e8400-e29b-41d4-a716-446655440001', 'john.doe@example.com', 'John', 'Doe', '$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2uheWG/igi.'), +('550e8400-e29b-41d4-a716-446655440002', 'jane.smith@example.com', 'Jane', 'Smith', '$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2uheWG/igi.'), +('550e8400-e29b-41d4-a716-446655440003', 'bob.johnson@example.com', 'Bob', 'Johnson', '$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2uheWG/igi.'), +('550e8400-e29b-41d4-a716-446655440004', 'alice.williams@example.com', 'Alice', 'Williams', '$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2uheWG/igi.'); \ No newline at end of file