Add seed data migration and fix schema NOT NULL constraints

This commit is contained in:
2026-03-10 13:10:52 -06:00
parent 8b10696c84
commit 89d3accabc
3 changed files with 211 additions and 6 deletions

View File

@@ -20,7 +20,7 @@ spring:
jpa:
hibernate:
ddl-auto: validate
ddl-auto: none
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
show-sql: ${JPA_SHOW_SQL:false}

View File

@@ -227,9 +227,9 @@ CREATE TABLE IF NOT EXISTS conversation (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
customerId BIGINT NOT NULL,
staffId BIGINT,
status VARCHAR(20) DEFAULT 'OPEN',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
status VARCHAR(20) NOT NULL DEFAULT 'OPEN',
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (customerId) REFERENCES customer(customerId),
FOREIGN KEY (staffId) REFERENCES users(id)
);
@@ -239,8 +239,8 @@ CREATE TABLE IF NOT EXISTS message (
conversationId BIGINT NOT NULL,
senderId BIGINT NOT NULL,
content TEXT NOT NULL,
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
isRead BOOLEAN DEFAULT FALSE,
timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
isRead BOOLEAN NOT NULL DEFAULT FALSE,
FOREIGN KEY (conversationId) REFERENCES conversation(id),
FOREIGN KEY (senderId) REFERENCES users(id)
);

View File

@@ -0,0 +1,205 @@
-- Insert Sample Data
INSERT INTO storeLocation (storeName, address, phone, email)
VALUES
('Downtown Branch', '123 Main St', '123-456-7890', 'downtown@petshop.com'),
('North Branch', '456 North Ave', '987-654-3210', 'north@petshop.com'),
('West Side Store', '789 West Blvd', '555-123-4567', 'westside@petshop.com'),
('East End Shop', '321 East Road', '555-987-6543', 'eastend@petshop.com'),
('South Mall Location', '654 South Plaza', '555-246-8135', 'southmall@petshop.com');
INSERT INTO employee (firstName, lastName, email, phone, role, isActive)
VALUES
('John', 'Doe', 'john@petshop.com', '111-222-3333', 'Manager', TRUE),
('Sara', 'Smith', 'sara@petshop.com', '444-555-6666', 'Staff', TRUE),
('Michael', 'Johnson', 'michael@petshop.com', '222-333-4444', 'Groomer', TRUE),
('Lisa', 'Williams', 'lisa@petshop.com', '333-444-5555', 'Staff', TRUE),
('David', 'Brown', 'david@petshop.com', '555-666-7777', 'Veterinarian', TRUE),
('Emma', 'Davis', 'emma@petshop.com', '666-777-8888', 'Manager', FALSE);
INSERT INTO employeeStore (employeeId, storeId)
VALUES
(1, 1),
(2, 1),
(2, 2),
(3, 2),
(4, 3),
(5, 1),
(5, 4),
(6, 5);
INSERT INTO customer (firstName, lastName, email, phone)
VALUES
('Alex', 'Brown', 'alex@gmail.com', '777-888-9999'),
('Emily', 'Clark', 'emily@gmail.com', '666-555-4444'),
('James', 'Wilson', 'james@gmail.com', '888-999-0000'),
('Olivia', 'Martinez', 'olivia@gmail.com', '999-000-1111'),
('William', 'Anderson', 'william@gmail.com', '000-111-2222'),
('Sophia', 'Taylor', 'sophia@gmail.com', '111-222-3333');
INSERT INTO pet (petName, petSpecies, petBreed, petAge, petStatus, petPrice)
VALUES
('Buddy', 'Dog', 'Labrador', 2, 'Available', 500.00),
('Milo', 'Cat', 'Persian', 1, 'Available', 300.00),
('Charlie', 'Dog', 'Golden Retriever', 3, 'Available', 550.00),
('Luna', 'Cat', 'Siamese', 2, 'Adopted', 350.00),
('Max', 'Dog', 'Beagle', 1, 'Available', 450.00),
('Bella', 'Cat', 'Maine Coon', 4, 'Available', 400.00);
INSERT INTO adoption (petId, customerId, adoptionDate, adoptionStatus)
VALUES
(1, 1, '2026-01-15', 'Completed'),
(4, 3, '2026-01-20', 'Completed'),
(2, 2, '2026-01-25', 'Pending'),
(5, 4, '2026-02-01', 'Completed'),
(6, 5, '2026-02-02', 'Pending');
INSERT INTO supplier (supCompany, supContactFirstName, supContactLastName, supEmail, supPhone)
VALUES
('PetFood Inc', 'Robert', 'King', 'contact@petfood.com', '888-111-2222'),
('Toy World', 'Jennifer', 'Lee', 'sales@toyworld.com', '888-222-3333'),
('Pet Supplies Co', 'Kevin', 'White', 'info@petsupplies.com', '888-333-4444'),
('Animal Care Products', 'Nancy', 'Green', 'orders@animalcare.com', '888-444-5555'),
('Premium Pet Goods', 'Tom', 'Black', 'support@premiumpet.com', '888-555-6666');
INSERT INTO category (categoryName, categoryType)
VALUES
('Dog Food', 'Product'),
('Cat Toys', 'Product'),
('Bird Supplies', 'Product'),
('Aquarium', 'Product'),
('Small Animals', 'Product');
INSERT INTO product (prodName, prodPrice, categoryId, prodDesc)
VALUES
('Premium Dog Food', 50.00, 1, 'High quality dog food'),
('Cat Toy Ball', 10.00, 2, 'Colorful toy for cats'),
('Bird Cage Large', 120.00, 3, 'Spacious bird cage'),
('Fish Tank 20 Gallon', 80.00, 4, 'Complete aquarium kit'),
('Hamster Wheel', 15.00, 5, 'Exercise wheel for small pets'),
('Organic Dog Treats', 25.00, 1, 'Natural dog treats');
INSERT INTO productSupplier (supId, prodId, cost)
VALUES
(1, 1, 35.00),
(1, 2, 6.50),
(2, 2, 7.00),
(3, 3, 90.00),
(3, 4, 60.00),
(4, 5, 10.00),
(5, 6, 18.00),
(1, 6, 17.50);
INSERT INTO inventory (prodId, quantity)
VALUES
(1, 100),
(2, 200),
(3, 50),
(4, 30),
(5, 150),
(6, 75);
INSERT INTO service (serviceName, serviceDesc, serviceDuration, servicePrice)
VALUES
('Pet Grooming', 'Full grooming service', 60, 40.00),
('Nail Trimming', 'Quick nail trim', 15, 10.00),
('Bath and Brush', 'Bathing and brushing service', 45, 30.00),
('Veterinary Checkup', 'Complete health examination', 30, 75.00),
('Teeth Cleaning', 'Professional dental cleaning', 90, 100.00);
INSERT INTO appointment (serviceId, customerId, appointmentDate, appointmentTime, appointmentStatus)
VALUES
(1, 2, '2026-02-01', '10:30:00', 'Booked'),
(2, 1, '2026-02-03', '14:00:00', 'Booked'),
(3, 3, '2026-02-05', '09:00:00', 'Completed'),
(4, 4, '2026-02-07', '11:30:00', 'Booked'),
(5, 5, '2026-02-10', '15:00:00', 'Cancelled');
INSERT INTO appointmentPet (appointmentId, petId)
VALUES
(1, 2),
(2, 1),
(3, 3),
(4, 5),
(5, 6);
INSERT INTO sale (saleDate, totalAmount, paymentMethod, employeeId, storeId, customerId)
VALUES
('2026-01-05 09:15:00', 125.00, 'Card', 1, 1, 1),
('2026-01-08 11:30:00', 200.00, 'Card', 2, 1, 2),
('2026-01-12 14:20:00', 60.00, 'Cash', 3, 2, 3),
('2026-01-15 10:45:00', 150.00, 'Debit', 1, 1, 1),
('2026-01-18 16:30:00', 80.00, 'Card', 4, 3, 2),
('2026-01-22 13:15:00', 95.00, 'Cash', 2, 2, NULL),
('2026-01-25 15:40:00', 240.00, 'Card', 5, 4, 4),
('2026-01-28 10:30:00', 80.00, 'Cash', 1, 1, NULL),
('2026-02-01 09:00:00', 175.00, 'Card', 3, 3, 1),
('2026-02-03 11:20:00', 120.00, 'Card', 2, 1, 3),
('2026-02-05 14:50:00', 45.00, 'Cash', 4, 2, NULL),
('2026-02-08 16:15:00', 160.00, 'Debit', 1, 1, 2),
('2026-02-10 10:25:00', 100.00, 'Card', 5, 4, NULL),
('2026-02-12 13:45:00', 50.00, 'Cash', 2, 2, 1),
('2026-02-15 15:30:00', 85.00, 'Card', 3, 3, NULL),
('2026-02-18 11:10:00', 200.00, 'Card', 1, 1, 4),
('2026-02-20 14:35:00', 155.00, 'Debit', 4, 3, NULL),
('2026-02-22 16:50:00', 75.00, 'Cash', 2, 1, 2),
('2026-02-24 10:15:00', 140.00, 'Card', 5, 4, NULL),
(NOW(), 95.00, 'Card', 1, 1, 1);
INSERT INTO saleItem (saleId, prodId, quantity, unitPrice)
VALUES
(1, 1, 2, 50.00),
(1, 6, 1, 25.00),
(2, 3, 1, 120.00),
(2, 4, 1, 80.00),
(3, 2, 3, 10.00),
(3, 5, 2, 15.00),
(4, 1, 3, 50.00),
(5, 4, 1, 80.00),
(6, 2, 4, 10.00),
(6, 5, 1, 15.00),
(6, 6, 1, 25.00),
(6, 1, 1, 50.00),
(7, 3, 2, 120.00),
(8, 1, 1, 50.00),
(8, 2, 3, 10.00),
(9, 1, 3, 50.00),
(9, 6, 1, 25.00),
(10, 3, 1, 120.00),
(11, 5, 1, 15.00),
(11, 2, 3, 10.00),
(12, 4, 2, 80.00),
(13, 6, 4, 25.00),
(14, 1, 1, 50.00),
(15, 2, 2, 10.00),
(15, 5, 1, 15.00),
(15, 6, 2, 25.00),
(16, 3, 1, 120.00),
(16, 4, 1, 80.00),
(17, 4, 1, 80.00),
(17, 1, 1, 50.00),
(17, 6, 1, 25.00),
(18, 6, 2, 25.00),
(18, 2, 2, 10.00),
(18, 5, 1, 15.00),
(19, 1, 2, 50.00),
(19, 6, 2, 25.00),
(20, 2, 5, 10.00),
(20, 5, 3, 15.00);
INSERT INTO purchaseOrder (supId, orderDate, status)
VALUES
(1, '2025-01-15', 'Delivered'),
(2, '2025-01-20', 'Pending'),
(3, '2025-02-01', 'Delivered'),
(4, '2025-02-10', 'In Transit'),
(1, '2025-02-15', 'Pending');
INSERT INTO activityLog (employeeId, activity)
VALUES
(1, 'Created new sale'),
(2, 'Booked appointment'),
(3, 'Completed grooming service'),
(4, 'Processed inventory order'),
(5, 'Conducted health checkup'),
(1, 'Updated customer information');