title-case all DB strings

This commit is contained in:
2026-04-20 09:42:21 -06:00
parent 72a3e8d128
commit 6171b0f2f5
11 changed files with 307 additions and 295 deletions

View File

@@ -344,9 +344,11 @@ public class AuthController {
@PostMapping("/logout")
public ResponseEntity<?> logout() {
User user = authHelper.getAuthenticatedUser();
user.setTokenVersion(user.getTokenVersion() + 1);
userRepository.save(user);
Map<String, String> response = new HashMap<>();
response.put("message", "Logged out successfully");
response.put("note", "Token remains valid until expiration. Clear token from client storage.");
return ResponseEntity.ok(response);
}

View File

@@ -12,7 +12,7 @@ public class CustomerAdoptionRequest {
private Long sourceStoreId;
@NotNull(message = "Appointment date is required")
@NotNull(message = "Adoption date is required")
private LocalDate adoptionDate;
public Long getPetId() {

View File

@@ -1,14 +1,17 @@
package com.petshop.backend.dto.auth;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import java.util.Objects;
public class ProfileUpdateRequest {
@Size(min = 3, max = 50, message = "Username must be between 3 and 50 characters")
@Pattern(regexp = "^(?!\\s*$).+", message = "Username must not be blank")
private String username;
@Email(message = "Email must be valid")
@Pattern(regexp = "^(?!\\s*$).+", message = "Email must not be blank")
private String email;
@Size(max = 50, message = "First name must not exceed 50 characters")

View File

@@ -1,6 +1,7 @@
package com.petshop.backend.dto.chat;
public class MessageRequest {
@jakarta.validation.constraints.Size(max = 10000, message = "Message content must not exceed 10000 characters")
private String content;
private String attachmentUrl;
private String attachmentName;

View File

@@ -11,6 +11,7 @@ public class CouponRequest {
private String couponCode;
@NotBlank(message = "Discount type is required")
@jakarta.validation.constraints.Pattern(regexp = "^(Percent|Percentage|Fixed|Flat)$", flags = jakarta.validation.constraints.Pattern.Flag.CASE_INSENSITIVE, message = "Discount type must be Percent, Percentage, Fixed, or Flat")
private String discountType;
@NotNull(message = "Discount value is required")

View File

@@ -1,8 +1,10 @@
package com.petshop.backend.dto.sale;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import java.util.List;
import java.util.Objects;
@@ -10,6 +12,8 @@ public class SaleRequest {
@NotNull(message = "Store ID is required")
private Long storeId;
@NotBlank(message = "Payment method is required")
@Pattern(regexp = "^(Cash|Card)$", message = "Payment method must be Cash or Card")
private String paymentMethod;
@NotEmpty(message = "At least one item is required")
@@ -22,6 +26,7 @@ public class SaleRequest {
private Long customerId;
@Pattern(regexp = "^(In Store|Online)$", message = "Channel must be In Store or Online")
private String channel;
private Long couponId;

View File

@@ -47,7 +47,7 @@ public class Sale {
private Sale originalSale;
@Column(nullable = false, length = 20)
private String channel = "IN_STORE";
private String channel = "In Store";
@ManyToOne
@JoinColumn(name = "cartId")

View File

@@ -89,7 +89,7 @@ public class CouponService {
}
private void updateCouponFields(Coupon coupon, CouponRequest request) {
if ("PERCENTAGE".equalsIgnoreCase(request.getDiscountType())
if (isPercentageType(request.getDiscountType())
&& request.getDiscountValue().compareTo(new BigDecimal("100")) >= 0) {
throw new BusinessException("Percentage discount must be less than 100");
}

View File

@@ -84,7 +84,7 @@ public class SaleService {
sale.setStore(store);
sale.setPaymentMethod(normalizePaymentMethod(request.getPaymentMethod()));
sale.setIsRefund(request.getIsRefund() != null ? request.getIsRefund() : false);
sale.setChannel(request.getChannel() != null ? request.getChannel() : "IN_STORE");
sale.setChannel(request.getChannel() != null ? request.getChannel() : "In Store");
if (request.getCouponId() != null) {
Coupon coupon = couponRepository.findByIdForUpdate(request.getCouponId())

View File

@@ -244,7 +244,7 @@ CREATE TABLE IF NOT EXISTS sale (
customerId BIGINT NULL,
isRefund BOOLEAN NOT NULL DEFAULT FALSE,
originalSaleId BIGINT NULL,
channel VARCHAR(20) NOT NULL DEFAULT 'IN_STORE',
channel VARCHAR(20) NOT NULL DEFAULT 'In Store',
cartId BIGINT NULL,
couponId BIGINT NULL,
subtotalAmount DECIMAL(10, 2) NULL,

View File

@@ -59,19 +59,19 @@ INSERT INTO storeLocation (storeId, storeName, address, phone, email, imageUrl)
INSERT INTO users (id, username, password, email, firstName, lastName, fullName, phone, avatarUrl, role, staffRole, primaryStoreId, loyaltyPoints, active, tokenVersion) VALUES
(1, 'admin', '$2y$10$ok/BmOn/pyyamTeNmUDiB.OfLCduQlZSAaRLlupM/cZb7ZhiBriVe', 'admin@petshop.com', 'Admin', 'User', 'Admin User', '000-000-1000', 'https://images.petshop.local/users/001.webp', 'ADMIN', 'ADMINISTRATOR', 1, 0, 1, 0),
(2, 'morgan.lee', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'morgan.lee@petshop.com', 'Morgan', 'Lee', 'Morgan Lee', '403-700-0002', 'https://images.petshop.local/users/002.webp', 'ADMIN', 'OPERATIONS_ADMIN', 2, 0, 1, 0),
(3, 'staff', '$2y$10$23mqbLolo609T/.PC4KfiuY.9HqYEgA8LrJ/fccZ7CmK0/OIsPrfq', 'staff@petshop.com', 'Staff', 'User', 'Staff User', '000-000-1001', 'https://images.petshop.local/users/003.webp', 'STAFF', 'STORE_MANAGER', 1, 0, 1, 0),
(4, 'sara.smith', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'sara.smith@petshop.com', 'Sara', 'Smith', 'Sara Smith', '403-710-0004', 'https://images.petshop.local/users/004.webp', 'STAFF', 'SALES_ASSOCIATE', 1, 0, 1, 0),
(5, 'david.brown', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'david.brown@petshop.com', 'David', 'Brown', 'David Brown', '403-710-0005', 'https://images.petshop.local/users/005.webp', 'STAFF', 'VETERINARY_TECH', 1, 0, 1, 0),
(6, 'priya.patel', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'priya.patel@petshop.com', 'Priya', 'Patel', 'Priya Patel', '403-710-0006', 'https://images.petshop.local/users/006.webp', 'STAFF', 'GROOMER', 1, 0, 1, 0),
(7, 'michael.johnson', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'michael.johnson@petshop.com', 'Michael', 'Johnson', 'Michael Johnson', '403-710-0007', 'https://images.petshop.local/users/007.webp', 'STAFF', 'STORE_MANAGER', 2, 0, 1, 0),
(8, 'emma.davis', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'emma.davis@petshop.com', 'Emma', 'Davis', 'Emma Davis', '403-710-0008', 'https://images.petshop.local/users/008.webp', 'STAFF', 'SALES_ASSOCIATE', 2, 0, 1, 0),
(9, 'lucas.turner', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'lucas.turner@petshop.com', 'Lucas', 'Turner', 'Lucas Turner', '403-710-0009', 'https://images.petshop.local/users/009.webp', 'STAFF', 'VETERINARY_TECH', 2, 0, 1, 0),
(10, 'nina.green', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'nina.green@petshop.com', 'Nina', 'Green', 'Nina Green', '403-710-0010', 'https://images.petshop.local/users/010.webp', 'STAFF', 'GROOMER', 2, 0, 1, 0),
(11, 'lisa.williams', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'lisa.williams@petshop.com', 'Lisa', 'Williams', 'Lisa Williams', '403-710-0011', 'https://images.petshop.local/users/011.webp', 'STAFF', 'STORE_MANAGER', 3, 0, 1, 0),
(12, 'daniel.moore', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'daniel.moore@petshop.com', 'Daniel', 'Moore', 'Daniel Moore', '403-710-0012', 'https://images.petshop.local/users/012.webp', 'STAFF', 'SALES_ASSOCIATE', 3, 0, 1, 0),
(13, 'chloe.martin', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'chloe.martin@petshop.com', 'Chloe', 'Martin', 'Chloe Martin', '403-710-0013', 'https://images.petshop.local/users/013.webp', 'STAFF', 'VETERINARY_TECH', 3, 0, 1, 0),
(14, 'owen.baker', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'owen.baker@petshop.com', 'Owen', 'Baker', 'Owen Baker', '403-710-0014', 'https://images.petshop.local/users/014.webp', 'STAFF', 'GROOMER', 3, 0, 1, 0),
(2, 'morgan.lee', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'morgan.lee@petshop.com', 'Morgan', 'Lee', 'Morgan Lee', '403-700-0002', 'https://images.petshop.local/users/002.webp', 'ADMIN', 'Operations Admin', 2, 0, 1, 0),
(3, 'staff', '$2y$10$23mqbLolo609T/.PC4KfiuY.9HqYEgA8LrJ/fccZ7CmK0/OIsPrfq', 'staff@petshop.com', 'Staff', 'User', 'Staff User', '000-000-1001', 'https://images.petshop.local/users/003.webp', 'STAFF', 'Store Manager', 1, 0, 1, 0),
(4, 'sara.smith', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'sara.smith@petshop.com', 'Sara', 'Smith', 'Sara Smith', '403-710-0004', 'https://images.petshop.local/users/004.webp', 'STAFF', 'Sales Associate', 1, 0, 1, 0),
(5, 'david.brown', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'david.brown@petshop.com', 'David', 'Brown', 'David Brown', '403-710-0005', 'https://images.petshop.local/users/005.webp', 'STAFF', 'Veterinary Tech', 1, 0, 1, 0),
(6, 'priya.patel', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'priya.patel@petshop.com', 'Priya', 'Patel', 'Priya Patel', '403-710-0006', 'https://images.petshop.local/users/006.webp', 'STAFF', 'Groomer', 1, 0, 1, 0),
(7, 'michael.johnson', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'michael.johnson@petshop.com', 'Michael', 'Johnson', 'Michael Johnson', '403-710-0007', 'https://images.petshop.local/users/007.webp', 'STAFF', 'Store Manager', 2, 0, 1, 0),
(8, 'emma.davis', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'emma.davis@petshop.com', 'Emma', 'Davis', 'Emma Davis', '403-710-0008', 'https://images.petshop.local/users/008.webp', 'STAFF', 'Sales Associate', 2, 0, 1, 0),
(9, 'lucas.turner', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'lucas.turner@petshop.com', 'Lucas', 'Turner', 'Lucas Turner', '403-710-0009', 'https://images.petshop.local/users/009.webp', 'STAFF', 'Veterinary Tech', 2, 0, 1, 0),
(10, 'nina.green', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'nina.green@petshop.com', 'Nina', 'Green', 'Nina Green', '403-710-0010', 'https://images.petshop.local/users/010.webp', 'STAFF', 'Groomer', 2, 0, 1, 0),
(11, 'lisa.williams', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'lisa.williams@petshop.com', 'Lisa', 'Williams', 'Lisa Williams', '403-710-0011', 'https://images.petshop.local/users/011.webp', 'STAFF', 'Store Manager', 3, 0, 1, 0),
(12, 'daniel.moore', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'daniel.moore@petshop.com', 'Daniel', 'Moore', 'Daniel Moore', '403-710-0012', 'https://images.petshop.local/users/012.webp', 'STAFF', 'Sales Associate', 3, 0, 1, 0),
(13, 'chloe.martin', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'chloe.martin@petshop.com', 'Chloe', 'Martin', 'Chloe Martin', '403-710-0013', 'https://images.petshop.local/users/013.webp', 'STAFF', 'Veterinary Tech', 3, 0, 1, 0),
(14, 'owen.baker', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'owen.baker@petshop.com', 'Owen', 'Baker', 'Owen Baker', '403-710-0014', 'https://images.petshop.local/users/014.webp', 'STAFF', 'Groomer', 3, 0, 1, 0),
(15, 'customer', '$2y$10$fgIlTHDYUOzvbczwdhQP7..YuAHr2cGODb9OBQJqole3AkiY4CGUq', 'customer@petshop.com', 'Test', 'Customer', 'Test Customer', '000-000-1002', 'https://images.petshop.local/users/015.webp', 'CUSTOMER', 'CUSTOMER', NULL, 0, 1, 0),
(16, 'alex.brown', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'alex.brown@gmail.com', 'Alex', 'Brown', 'Alex Brown', '403-730-0016', 'https://images.petshop.local/users/016.webp', 'CUSTOMER', 'CUSTOMER', NULL, 12, 1, 0),
(17, 'alex.clark', '$2a$10$mE0D/HrnCuqFeEqMy0NJwuy2jkoRYjQ7GrKcc/7QQ0r2AqnZTvyGq', 'alex.clark@gmail.com', 'Alex', 'Clark', 'Alex Clark', '403-730-0017', 'https://images.petshop.local/users/017.webp', 'CUSTOMER', 'CUSTOMER', NULL, 15, 1, 0),
@@ -830,14 +830,14 @@ INSERT INTO purchaseOrder (purchaseOrderId, supId, storeId, orderDate) VALUES
(36, 10, 3, '2026-04-22');
INSERT INTO coupon (couponId, couponCode, discountType, discountValue, minOrderAmount, active, startsAt, endsAt, usageLimit) VALUES
(1, 'NOCODE', 'FIXED', 0.00, 0.00, 1, NULL, NULL, NULL),
(2, 'WELCOME10', 'PERCENT', 10.00, 50.00, 1, '2026-01-01 00:00:00', '2026-12-31 23:59:59', 300),
(3, 'TREAT5', 'FIXED', 5.00, 25.00, 1, '2026-01-01 00:00:00', '2026-12-31 23:59:59', 500),
(4, 'GROOM15', 'PERCENT', 15.00, 60.00, 1, '2026-01-01 00:00:00', '2026-12-31 23:59:59', 200),
(5, 'FISHCARE8', 'FIXED', 8.00, 40.00, 1, '2026-01-01 00:00:00', '2026-12-31 23:59:59', 150),
(6, 'BIRD10', 'PERCENT', 10.00, 30.00, 1, '2026-01-01 00:00:00', '2026-12-31 23:59:59', 150),
(7, 'SPRING12', 'PERCENT', 12.00, 75.00, 1, '2026-03-01 00:00:00', '2026-05-31 23:59:59', 180),
(8, 'NEWPET20', 'FIXED', 20.00, 100.00, 1, '2026-01-01 00:00:00', '2026-12-31 23:59:59', 120);
(1, 'NOCODE', 'Fixed', 0.00, 0.00, 1, NULL, NULL, NULL),
(2, 'WELCOME10', 'Percent', 10.00, 50.00, 1, '2026-01-01 00:00:00', '2026-12-31 23:59:59', 300),
(3, 'TREAT5', 'Fixed', 5.00, 25.00, 1, '2026-01-01 00:00:00', '2026-12-31 23:59:59', 500),
(4, 'GROOM15', 'Percent', 15.00, 60.00, 1, '2026-01-01 00:00:00', '2026-12-31 23:59:59', 200),
(5, 'FISHCARE8', 'Fixed', 8.00, 40.00, 1, '2026-01-01 00:00:00', '2026-12-31 23:59:59', 150),
(6, 'BIRD10', 'Percent', 10.00, 30.00, 1, '2026-01-01 00:00:00', '2026-12-31 23:59:59', 150),
(7, 'SPRING12', 'Percent', 12.00, 75.00, 1, '2026-03-01 00:00:00', '2026-05-31 23:59:59', 180),
(8, 'NEWPET20', 'Fixed', 20.00, 100.00, 1, '2026-01-01 00:00:00', '2026-12-31 23:59:59', 120);
INSERT INTO pet (petId, petName, petSpecies, petBreed, petAge, petStatus, petPrice, imageUrl, ownerUserId, storeId) VALUES
(1, 'Buddy', 'Dog', 'Corgi', 2, 'Available', 466.80, 'https://images.petshop.local/pets/001.webp', NULL, 1),
@@ -942,96 +942,96 @@ INSERT INTO pet (petId, petName, petSpecies, petBreed, petAge, petStatus, petPri
(100, 'Comet', 'Bird', 'Lovebird', 2, 'Owned', 0.00, 'https://images.petshop.local/pets/100.webp', 79, NULL);
INSERT INTO appointment (appointmentId, serviceId, petId, customerId, storeId, employeeId, appointmentDate, appointmentTime, appointmentStatus) VALUES
(1, 2, 37, 16, 1, 3, '2026-01-07', '09:00:00', 'COMPLETED'),
(2, 8, 38, 17, 2, 8, '2026-01-09', '10:30:00', 'COMPLETED'),
(3, 4, 39, 18, 3, 13, '2026-01-11', '13:00:00', 'MISSED'),
(4, 8, 40, 19, 1, 6, '2026-01-13', '14:30:00', 'CANCELLED'),
(5, 5, 41, 20, 2, 7, '2026-01-15', '16:00:00', 'COMPLETED'),
(6, 8, 42, 21, 3, 12, '2026-01-17', '09:00:00', 'COMPLETED'),
(7, 2, 43, 22, 1, 5, '2026-01-19', '10:30:00', 'COMPLETED'),
(8, 8, 44, 23, 2, 10, '2026-01-21', '13:00:00', 'MISSED'),
(9, 4, 45, 24, 3, 11, '2026-01-23', '14:30:00', 'CANCELLED'),
(10, 8, 46, 25, 1, 4, '2026-01-25', '16:00:00', 'COMPLETED'),
(11, 6, 47, 26, 2, 9, '2026-01-27', '09:00:00', 'COMPLETED'),
(12, 7, 48, 27, 3, 14, '2026-01-29', '10:30:00', 'COMPLETED'),
(13, 2, 49, 28, 1, 3, '2026-01-31', '13:00:00', 'MISSED'),
(14, 4, 50, 29, 2, 8, '2026-02-02', '14:30:00', 'CANCELLED'),
(15, 5, 51, 30, 3, 13, '2026-02-04', '16:00:00', 'COMPLETED'),
(16, 1, 52, 31, 1, 6, '2026-02-06', '09:00:00', 'COMPLETED'),
(17, 2, 53, 32, 2, 7, '2026-02-08', '10:30:00', 'COMPLETED'),
(18, 3, 54, 33, 3, 12, '2026-02-10', '13:00:00', 'MISSED'),
(19, 4, 55, 34, 2, 9, '2026-02-12', '14:30:00', 'CANCELLED'),
(20, 5, 56, 35, 3, 14, '2026-02-14', '16:00:00', 'COMPLETED'),
(21, 1, 57, 36, 1, 3, '2026-02-16', '09:00:00', 'COMPLETED'),
(22, 4, 58, 37, 2, 8, '2026-02-18', '10:30:00', 'COMPLETED'),
(23, 4, 59, 38, 3, 13, '2026-02-20', '13:00:00', 'MISSED'),
(24, 5, 60, 39, 1, 6, '2026-02-22', '14:30:00', 'CANCELLED'),
(25, 2, 61, 40, 2, 7, '2026-02-24', '16:00:00', 'COMPLETED'),
(26, 1, 62, 41, 3, 12, '2026-02-26', '09:00:00', 'COMPLETED'),
(27, 2, 63, 42, 1, 5, '2026-02-28', '10:30:00', 'COMPLETED'),
(28, 3, 64, 43, 2, 10, '2026-03-02', '13:00:00', 'MISSED'),
(29, 2, 65, 44, 3, 11, '2026-03-04', '14:30:00', 'CANCELLED'),
(30, 8, 66, 45, 1, 4, '2026-03-06', '16:00:00', 'COMPLETED'),
(31, 2, 67, 46, 2, 9, '2026-03-08', '09:00:00', 'COMPLETED'),
(32, 5, 68, 47, 3, 14, '2026-03-10', '10:30:00', 'COMPLETED'),
(33, 3, 69, 48, 1, 3, '2026-03-12', '13:00:00', 'MISSED'),
(34, 4, 70, 49, 2, 8, '2026-03-14', '14:30:00', 'CANCELLED'),
(35, 5, 71, 50, 3, 13, '2026-03-16', '16:00:00', 'COMPLETED'),
(36, 7, 72, 51, 1, 6, '2026-03-18', '09:00:00', 'COMPLETED'),
(37, 4, 73, 52, 2, 7, '2026-03-20', '10:30:00', 'COMPLETED'),
(38, 4, 74, 53, 3, 12, '2026-03-22', '13:00:00', 'MISSED'),
(39, 4, 75, 54, 1, 5, '2026-03-24', '14:30:00', 'CANCELLED'),
(40, 5, 76, 55, 2, 10, '2026-03-26', '16:00:00', 'COMPLETED'),
(41, 1, 77, 56, 3, 11, '2026-03-28', '09:00:00', 'COMPLETED'),
(42, 2, 78, 57, 1, 4, '2026-03-30', '10:30:00', 'COMPLETED'),
(43, 6, 79, 58, 2, 9, '2026-04-01', '13:00:00', 'BOOKED'),
(44, 8, 80, 59, 3, 14, '2026-04-03', '14:30:00', 'BOOKED'),
(45, 5, 81, 60, 1, 3, '2026-04-05', '16:00:00', 'BOOKED'),
(46, 3, 82, 61, 2, 8, '2026-04-07', '09:00:00', 'BOOKED'),
(47, 2, 83, 62, 3, 13, '2026-04-09', '10:30:00', 'BOOKED'),
(48, 3, 84, 63, 1, 6, '2026-04-11', '13:00:00', 'BOOKED'),
(49, 4, 85, 64, 2, 7, '2026-04-13', '14:30:00', 'BOOKED'),
(50, 4, 86, 65, 3, 12, '2026-04-15', '16:00:00', 'BOOKED'),
(51, 4, 87, 66, 1, 5, '2026-04-17', '09:00:00', 'BOOKED'),
(52, 2, 88, 67, 2, 10, '2026-04-19', '10:30:00', 'BOOKED'),
(53, 2, 89, 68, 3, 11, '2026-04-21', '13:00:00', 'BOOKED'),
(54, 4, 90, 69, 1, 4, '2026-04-23', '14:30:00', 'BOOKED'),
(55, 5, 91, 70, 2, 9, '2026-04-25', '16:00:00', 'BOOKED'),
(56, 1, 92, 71, 3, 14, '2026-04-27', '09:00:00', 'BOOKED'),
(57, 2, 93, 72, 1, 3, '2026-04-29', '10:30:00', 'BOOKED'),
(58, 8, 94, 73, 2, 8, '2026-05-01', '13:00:00', 'BOOKED'),
(59, 4, 95, 74, 3, 13, '2026-05-03', '14:30:00', 'BOOKED'),
(60, 5, 96, 75, 1, 6, '2026-05-05', '16:00:00', 'BOOKED'),
(61, 1, 97, 76, 2, 7, '2026-01-07', '09:00:00', 'COMPLETED'),
(62, 2, 98, 77, 3, 12, '2026-01-09', '10:30:00', 'COMPLETED'),
(63, 3, 99, 78, 1, 5, '2026-01-11', '13:00:00', 'MISSED'),
(64, 7, 100, 79, 2, 10, '2026-01-13', '14:30:00', 'CANCELLED'),
(65, 2, 37, 16, 1, 3, '2026-01-15', '16:00:00', 'COMPLETED'),
(66, 8, 38, 17, 2, 8, '2026-01-17', '09:00:00', 'COMPLETED'),
(67, 4, 39, 18, 3, 13, '2026-01-19', '10:30:00', 'COMPLETED'),
(68, 8, 40, 19, 1, 6, '2026-01-21', '13:00:00', 'MISSED'),
(69, 4, 41, 20, 2, 7, '2026-01-23', '14:30:00', 'CANCELLED'),
(70, 8, 42, 21, 3, 12, '2026-01-25', '16:00:00', 'COMPLETED'),
(71, 1, 43, 22, 1, 5, '2026-01-27', '09:00:00', 'COMPLETED'),
(72, 8, 44, 23, 2, 10, '2026-01-29', '10:30:00', 'COMPLETED'),
(73, 4, 45, 24, 3, 11, '2026-01-31', '13:00:00', 'MISSED'),
(74, 8, 46, 25, 1, 4, '2026-02-02', '14:30:00', 'CANCELLED'),
(75, 6, 47, 26, 2, 9, '2026-02-04', '16:00:00', 'COMPLETED'),
(76, 7, 48, 27, 3, 14, '2026-02-06', '09:00:00', 'COMPLETED'),
(77, 2, 49, 28, 1, 3, '2026-02-08', '10:30:00', 'COMPLETED'),
(78, 4, 50, 29, 2, 8, '2026-02-10', '13:00:00', 'MISSED'),
(79, 4, 51, 30, 3, 13, '2026-02-12', '14:30:00', 'CANCELLED'),
(80, 5, 52, 31, 1, 6, '2026-02-14', '16:00:00', 'COMPLETED'),
(81, 1, 53, 32, 2, 7, '2026-02-16', '09:00:00', 'COMPLETED'),
(82, 2, 54, 33, 3, 12, '2026-02-18', '10:30:00', 'COMPLETED'),
(83, 3, 55, 34, 2, 9, '2026-02-20', '13:00:00', 'MISSED'),
(84, 4, 56, 35, 3, 14, '2026-02-22', '14:30:00', 'CANCELLED'),
(85, 5, 57, 36, 1, 3, '2026-02-24', '16:00:00', 'COMPLETED'),
(86, 4, 58, 37, 2, 8, '2026-02-26', '09:00:00', 'COMPLETED'),
(87, 4, 59, 38, 3, 13, '2026-02-28', '10:30:00', 'COMPLETED'),
(88, 2, 60, 39, 1, 6, '2026-03-02', '13:00:00', 'MISSED'),
(89, 2, 61, 40, 2, 7, '2026-03-04', '14:30:00', 'CANCELLED'),
(90, 5, 62, 41, 3, 12, '2026-03-06', '16:00:00', 'COMPLETED');
(1, 2, 37, 16, 1, 3, '2026-01-07', '09:00:00', 'Completed'),
(2, 8, 38, 17, 2, 8, '2026-01-09', '10:30:00', 'Completed'),
(3, 4, 39, 18, 3, 13, '2026-01-11', '13:00:00', 'Missed'),
(4, 8, 40, 19, 1, 6, '2026-01-13', '14:30:00', 'Cancelled'),
(5, 5, 41, 20, 2, 7, '2026-01-15', '16:00:00', 'Completed'),
(6, 8, 42, 21, 3, 12, '2026-01-17', '09:00:00', 'Completed'),
(7, 2, 43, 22, 1, 5, '2026-01-19', '10:30:00', 'Completed'),
(8, 8, 44, 23, 2, 10, '2026-01-21', '13:00:00', 'Missed'),
(9, 4, 45, 24, 3, 11, '2026-01-23', '14:30:00', 'Cancelled'),
(10, 8, 46, 25, 1, 4, '2026-01-25', '16:00:00', 'Completed'),
(11, 6, 47, 26, 2, 9, '2026-01-27', '09:00:00', 'Completed'),
(12, 7, 48, 27, 3, 14, '2026-01-29', '10:30:00', 'Completed'),
(13, 2, 49, 28, 1, 3, '2026-01-31', '13:00:00', 'Missed'),
(14, 4, 50, 29, 2, 8, '2026-02-02', '14:30:00', 'Cancelled'),
(15, 5, 51, 30, 3, 13, '2026-02-04', '16:00:00', 'Completed'),
(16, 1, 52, 31, 1, 6, '2026-02-06', '09:00:00', 'Completed'),
(17, 2, 53, 32, 2, 7, '2026-02-08', '10:30:00', 'Completed'),
(18, 3, 54, 33, 3, 12, '2026-02-10', '13:00:00', 'Missed'),
(19, 4, 55, 34, 2, 9, '2026-02-12', '14:30:00', 'Cancelled'),
(20, 5, 56, 35, 3, 14, '2026-02-14', '16:00:00', 'Completed'),
(21, 1, 57, 36, 1, 3, '2026-02-16', '09:00:00', 'Completed'),
(22, 4, 58, 37, 2, 8, '2026-02-18', '10:30:00', 'Completed'),
(23, 4, 59, 38, 3, 13, '2026-02-20', '13:00:00', 'Missed'),
(24, 5, 60, 39, 1, 6, '2026-02-22', '14:30:00', 'Cancelled'),
(25, 2, 61, 40, 2, 7, '2026-02-24', '16:00:00', 'Completed'),
(26, 1, 62, 41, 3, 12, '2026-02-26', '09:00:00', 'Completed'),
(27, 2, 63, 42, 1, 5, '2026-02-28', '10:30:00', 'Completed'),
(28, 3, 64, 43, 2, 10, '2026-03-02', '13:00:00', 'Missed'),
(29, 2, 65, 44, 3, 11, '2026-03-04', '14:30:00', 'Cancelled'),
(30, 8, 66, 45, 1, 4, '2026-03-06', '16:00:00', 'Completed'),
(31, 2, 67, 46, 2, 9, '2026-03-08', '09:00:00', 'Completed'),
(32, 5, 68, 47, 3, 14, '2026-03-10', '10:30:00', 'Completed'),
(33, 3, 69, 48, 1, 3, '2026-03-12', '13:00:00', 'Missed'),
(34, 4, 70, 49, 2, 8, '2026-03-14', '14:30:00', 'Cancelled'),
(35, 5, 71, 50, 3, 13, '2026-03-16', '16:00:00', 'Completed'),
(36, 7, 72, 51, 1, 6, '2026-03-18', '09:00:00', 'Completed'),
(37, 4, 73, 52, 2, 7, '2026-03-20', '10:30:00', 'Completed'),
(38, 4, 74, 53, 3, 12, '2026-03-22', '13:00:00', 'Missed'),
(39, 4, 75, 54, 1, 5, '2026-03-24', '14:30:00', 'Cancelled'),
(40, 5, 76, 55, 2, 10, '2026-03-26', '16:00:00', 'Completed'),
(41, 1, 77, 56, 3, 11, '2026-03-28', '09:00:00', 'Completed'),
(42, 2, 78, 57, 1, 4, '2026-03-30', '10:30:00', 'Completed'),
(43, 6, 79, 58, 2, 9, '2026-04-01', '13:00:00', 'Booked'),
(44, 8, 80, 59, 3, 14, '2026-04-03', '14:30:00', 'Booked'),
(45, 5, 81, 60, 1, 3, '2026-04-05', '16:00:00', 'Booked'),
(46, 3, 82, 61, 2, 8, '2026-04-07', '09:00:00', 'Booked'),
(47, 2, 83, 62, 3, 13, '2026-04-09', '10:30:00', 'Booked'),
(48, 3, 84, 63, 1, 6, '2026-04-11', '13:00:00', 'Booked'),
(49, 4, 85, 64, 2, 7, '2026-04-13', '14:30:00', 'Booked'),
(50, 4, 86, 65, 3, 12, '2026-04-15', '16:00:00', 'Booked'),
(51, 4, 87, 66, 1, 5, '2026-04-17', '09:00:00', 'Booked'),
(52, 2, 88, 67, 2, 10, '2026-04-19', '10:30:00', 'Booked'),
(53, 2, 89, 68, 3, 11, '2026-04-21', '13:00:00', 'Booked'),
(54, 4, 90, 69, 1, 4, '2026-04-23', '14:30:00', 'Booked'),
(55, 5, 91, 70, 2, 9, '2026-04-25', '16:00:00', 'Booked'),
(56, 1, 92, 71, 3, 14, '2026-04-27', '09:00:00', 'Booked'),
(57, 2, 93, 72, 1, 3, '2026-04-29', '10:30:00', 'Booked'),
(58, 8, 94, 73, 2, 8, '2026-05-01', '13:00:00', 'Booked'),
(59, 4, 95, 74, 3, 13, '2026-05-03', '14:30:00', 'Booked'),
(60, 5, 96, 75, 1, 6, '2026-05-05', '16:00:00', 'Booked'),
(61, 1, 97, 76, 2, 7, '2026-01-07', '09:00:00', 'Completed'),
(62, 2, 98, 77, 3, 12, '2026-01-09', '10:30:00', 'Completed'),
(63, 3, 99, 78, 1, 5, '2026-01-11', '13:00:00', 'Missed'),
(64, 7, 100, 79, 2, 10, '2026-01-13', '14:30:00', 'Cancelled'),
(65, 2, 37, 16, 1, 3, '2026-01-15', '16:00:00', 'Completed'),
(66, 8, 38, 17, 2, 8, '2026-01-17', '09:00:00', 'Completed'),
(67, 4, 39, 18, 3, 13, '2026-01-19', '10:30:00', 'Completed'),
(68, 8, 40, 19, 1, 6, '2026-01-21', '13:00:00', 'Missed'),
(69, 4, 41, 20, 2, 7, '2026-01-23', '14:30:00', 'Cancelled'),
(70, 8, 42, 21, 3, 12, '2026-01-25', '16:00:00', 'Completed'),
(71, 1, 43, 22, 1, 5, '2026-01-27', '09:00:00', 'Completed'),
(72, 8, 44, 23, 2, 10, '2026-01-29', '10:30:00', 'Completed'),
(73, 4, 45, 24, 3, 11, '2026-01-31', '13:00:00', 'Missed'),
(74, 8, 46, 25, 1, 4, '2026-02-02', '14:30:00', 'Cancelled'),
(75, 6, 47, 26, 2, 9, '2026-02-04', '16:00:00', 'Completed'),
(76, 7, 48, 27, 3, 14, '2026-02-06', '09:00:00', 'Completed'),
(77, 2, 49, 28, 1, 3, '2026-02-08', '10:30:00', 'Completed'),
(78, 4, 50, 29, 2, 8, '2026-02-10', '13:00:00', 'Missed'),
(79, 4, 51, 30, 3, 13, '2026-02-12', '14:30:00', 'Cancelled'),
(80, 5, 52, 31, 1, 6, '2026-02-14', '16:00:00', 'Completed'),
(81, 1, 53, 32, 2, 7, '2026-02-16', '09:00:00', 'Completed'),
(82, 2, 54, 33, 3, 12, '2026-02-18', '10:30:00', 'Completed'),
(83, 3, 55, 34, 2, 9, '2026-02-20', '13:00:00', 'Missed'),
(84, 4, 56, 35, 3, 14, '2026-02-22', '14:30:00', 'Cancelled'),
(85, 5, 57, 36, 1, 3, '2026-02-24', '16:00:00', 'Completed'),
(86, 4, 58, 37, 2, 8, '2026-02-26', '09:00:00', 'Completed'),
(87, 4, 59, 38, 3, 13, '2026-02-28', '10:30:00', 'Completed'),
(88, 2, 60, 39, 1, 6, '2026-03-02', '13:00:00', 'Missed'),
(89, 2, 61, 40, 2, 7, '2026-03-04', '14:30:00', 'Cancelled'),
(90, 5, 62, 41, 3, 12, '2026-03-06', '16:00:00', 'Completed');
INSERT INTO adoption (adoptionId, petId, customerId, employeeId, sourceStoreId, adoptionDate, adoptionStatus) VALUES
(1, 37, 16, 3, 1, '2026-01-08', 'Completed'),
@@ -1217,116 +1217,116 @@ INSERT INTO cart_item (cartItemId, cartId, prodId, quantity, unitPrice) VALUES
(119, 40, 85, 2, 46.43);
INSERT INTO sale (saleId, saleDate, totalAmount, paymentMethod, employeeId, storeId, customerId, isRefund, originalSaleId, channel, cartId, couponId, subtotalAmount, couponDiscountAmount, employeeDiscountAmount, pointsEarned) VALUES
(1, '2026-02-02 10:11:00', 37.83, 'Cash', 3, 1, 3, 0, NULL, 'ONLINE', 1, 1, 44.51, 0.00, 6.68, 0),
(2, '2026-02-03 10:22:00', 192.78, 'Card', 4, 1, 4, 0, NULL, 'ONLINE', 2, 2, 252.00, 25.20, 34.02, 0),
(3, '2026-02-04 10:33:00', 363.23, 'Card', 5, 1, 5, 0, NULL, 'ONLINE', 3, 3, 432.33, 5.00, 64.10, 0),
(4, '2026-02-05 10:44:00', 81.29, 'Cash', 6, 1, 6, 0, NULL, 'ONLINE', 4, 7, 108.67, 13.04, 14.34, 0),
(5, '2026-02-06 10:55:00', 435.73, 'Card', 7, 2, 7, 0, NULL, 'ONLINE', 5, 1, 512.62, 0.00, 76.89, 0),
(6, '2026-02-07 11:06:00', 409.56, 'Card', 8, 2, 8, 0, NULL, 'ONLINE', 6, 1, 481.83, 0.00, 72.27, 0),
(7, '2026-02-08 11:17:00', 56.40, 'Cash', 9, 2, 9, 0, NULL, 'ONLINE', 7, 4, 78.06, 11.71, 9.95, 0),
(8, '2026-02-09 11:28:00', 174.20, 'Card', 10, 2, 10, 0, NULL, 'ONLINE', 8, 5, 212.94, 8.00, 30.74, 0),
(9, '2026-02-10 11:39:00', 619.91, 'Card', 11, 3, 11, 0, NULL, 'ONLINE', 9, 1, 729.31, 0.00, 109.40, 0),
(10, '2026-02-11 11:50:00', 169.73, 'Card', 12, 3, 12, 0, NULL, 'ONLINE', 10, 6, 221.87, 22.19, 29.95, 0),
(11, '2026-02-12 12:01:00', 137.86, 'Cash', 13, 3, 13, 0, NULL, 'ONLINE', 11, 1, 162.19, 0.00, 24.33, 0),
(12, '2026-02-13 12:12:00', 453.95, 'Card', 14, 3, 14, 0, NULL, 'ONLINE', 12, 2, 593.40, 59.34, 80.11, 0),
(13, '2026-01-05 09:15:00', 82.72, 'Card', 3, 1, 15, 0, NULL, 'IN_STORE', NULL, 1, 82.72, 0.00, 0.00, 0),
(14, '2026-01-05 09:52:00', 120.43, 'Card', 8, 2, 16, 0, NULL, 'IN_STORE', NULL, 2, 133.81, 13.38, 0.00, 12),
(15, '2026-01-06 10:29:00', 153.21, 'Cash', 13, 3, 17, 0, NULL, 'IN_STORE', NULL, 1, 153.21, 0.00, 0.00, 15),
(16, '2026-01-06 11:06:00', 20.27, 'Card', 6, 1, 18, 0, NULL, 'IN_STORE', NULL, 3, 25.27, 5.00, 0.00, 2),
(17, '2026-01-07 11:43:00', 58.96, 'Cash', 7, 2, 19, 0, NULL, 'IN_STORE', NULL, 1, 58.96, 0.00, 0.00, 5),
(18, '2026-01-07 12:20:00', 124.54, 'Card', 12, 3, 20, 0, NULL, 'IN_STORE', NULL, 7, 141.52, 16.98, 0.00, 12),
(19, '2026-01-08 12:57:00', 118.84, 'Card', 5, 1, 21, 0, NULL, 'IN_STORE', NULL, 1, 118.84, 0.00, 0.00, 11),
(20, '2026-01-08 13:34:00', 167.02, 'Cash', 10, 2, 22, 0, NULL, 'IN_STORE', NULL, 4, 196.50, 29.48, 0.00, 16),
(21, '2026-01-09 14:11:00', 367.69, 'Card', 11, 3, 23, 0, NULL, 'IN_STORE', NULL, 1, 367.69, 0.00, 0.00, 36),
(22, '2026-01-09 14:48:00', 57.62, 'Cash', 4, 1, 24, 0, NULL, 'IN_STORE', NULL, 1, 57.62, 0.00, 0.00, 5),
(23, '2026-01-10 15:25:00', 84.03, 'Card', 9, 2, 25, 0, NULL, 'IN_STORE', NULL, 6, 93.37, 9.34, 0.00, 8),
(24, '2026-01-10 16:02:00', 297.25, 'Card', 14, 3, 26, 0, NULL, 'IN_STORE', NULL, 1, 297.25, 0.00, 0.00, 29),
(25, '2026-01-11 16:39:00', 35.78, 'Cash', 3, 1, 27, 0, NULL, 'IN_STORE', NULL, 2, 35.78, 0.00, 0.00, 3),
(26, '2026-01-11 17:16:00', 136.99, 'Card', 8, 2, 28, 0, NULL, 'IN_STORE', NULL, 1, 136.99, 0.00, 0.00, 13),
(27, '2026-01-12 17:53:00', 300.52, 'Cash', 13, 3, 29, 0, NULL, 'IN_STORE', NULL, 3, 305.52, 5.00, 0.00, 30),
(28, '2026-01-12 18:30:00', 165.99, 'Card', 6, 1, 30, 0, NULL, 'IN_STORE', NULL, 1, 165.99, 0.00, 0.00, 16),
(29, '2026-01-13 19:07:00', 91.28, 'Card', 7, 2, 31, 0, NULL, 'IN_STORE', NULL, 7, 103.73, 12.45, 0.00, 9),
(30, '2026-01-13 19:44:00', 198.88, 'Cash', 12, 3, 32, 0, NULL, 'IN_STORE', NULL, 1, 198.88, 0.00, 0.00, 19),
(31, '2026-01-14 20:21:00', 25.28, 'Card', 5, 1, 33, 0, NULL, 'IN_STORE', NULL, 4, 25.28, 0.00, 0.00, 2),
(32, '2026-01-14 20:58:00', 58.51, 'Cash', 10, 2, 34, 0, NULL, 'IN_STORE', NULL, 1, 58.51, 0.00, 0.00, 5),
(33, '2026-01-15 21:35:00', 314.15, 'Card', 11, 3, 35, 0, NULL, 'IN_STORE', NULL, 1, 314.15, 0.00, 0.00, 31),
(34, '2026-01-15 22:12:00', 61.62, 'Card', 4, 1, 36, 0, NULL, 'IN_STORE', NULL, 6, 68.47, 6.85, 0.00, 6),
(35, '2026-01-16 22:49:00', 49.61, 'Cash', 9, 2, 37, 0, NULL, 'IN_STORE', NULL, 1, 49.61, 0.00, 0.00, 4),
(36, '2026-01-16 23:26:00', 196.32, 'Card', 14, 3, 38, 0, NULL, 'IN_STORE', NULL, 2, 218.13, 21.81, 0.00, 19),
(37, '2026-01-18 00:03:00', 47.92, 'Cash', 3, 1, 39, 0, NULL, 'IN_STORE', NULL, 1, 47.92, 0.00, 0.00, 4),
(38, '2026-01-18 00:40:00', 121.03, 'Card', 8, 2, 40, 0, NULL, 'IN_STORE', NULL, 3, 126.03, 5.00, 0.00, 12),
(39, '2026-01-19 01:17:00', 187.91, 'Card', 13, 3, 41, 0, NULL, 'IN_STORE', NULL, 1, 187.91, 0.00, 0.00, 18),
(40, '2026-01-19 01:54:00', 108.22, 'Cash', 6, 1, 42, 0, NULL, 'IN_STORE', NULL, 7, 122.98, 14.76, 0.00, 10),
(41, '2026-01-20 02:31:00', 67.71, 'Card', 7, 2, 43, 0, NULL, 'IN_STORE', NULL, 1, 67.71, 0.00, 0.00, 6),
(42, '2026-01-20 03:08:00', 114.93, 'Cash', 12, 3, 44, 0, NULL, 'IN_STORE', NULL, 4, 135.21, 20.28, 0.00, 11),
(43, '2026-01-21 03:45:00', 55.38, 'Card', 5, 1, 45, 0, NULL, 'IN_STORE', NULL, 1, 55.38, 0.00, 0.00, 5),
(44, '2026-01-21 04:22:00', 286.34, 'Card', 10, 2, 46, 0, NULL, 'IN_STORE', NULL, 1, 286.34, 0.00, 0.00, 28),
(45, '2026-01-22 04:59:00', 83.62, 'Cash', 11, 3, 47, 0, NULL, 'IN_STORE', NULL, 6, 92.91, 9.29, 0.00, 8),
(46, '2026-01-22 05:36:00', 29.89, 'Card', 4, 1, 48, 0, NULL, 'IN_STORE', NULL, 1, 29.89, 0.00, 0.00, 2),
(47, '2026-01-23 06:13:00', 161.48, 'Cash', 9, 2, 49, 0, NULL, 'IN_STORE', NULL, 2, 179.42, 17.94, 0.00, 16),
(48, '2026-01-23 06:50:00', 210.14, 'Card', 14, 3, 50, 0, NULL, 'IN_STORE', NULL, 1, 210.14, 0.00, 0.00, 21),
(49, '2026-01-24 07:27:00', 73.64, 'Card', 3, 1, 51, 0, NULL, 'IN_STORE', NULL, 3, 78.64, 5.00, 0.00, 7),
(50, '2026-01-24 08:04:00', 179.28, 'Cash', 8, 2, 52, 0, NULL, 'IN_STORE', NULL, 1, 179.28, 0.00, 0.00, 17),
(51, '2026-01-25 08:41:00', 101.67, 'Card', 13, 3, 53, 0, NULL, 'IN_STORE', NULL, 7, 115.53, 13.86, 0.00, 10),
(52, '2026-01-25 09:18:00', 21.31, 'Cash', 6, 1, 54, 0, NULL, 'IN_STORE', NULL, 1, 21.31, 0.00, 0.00, 2),
(53, '2026-01-26 09:55:00', 79.57, 'Card', 7, 2, 55, 0, NULL, 'IN_STORE', NULL, 4, 93.61, 14.04, 0.00, 7),
(54, '2026-01-26 10:32:00', 156.49, 'Card', 12, 3, 56, 0, NULL, 'IN_STORE', NULL, 1, 156.49, 0.00, 0.00, 15),
(55, '2026-01-27 11:09:00', 28.32, 'Cash', 5, 1, 57, 0, NULL, 'IN_STORE', NULL, 1, 28.32, 0.00, 0.00, 2),
(56, '2026-01-27 11:46:00', 175.47, 'Card', 10, 2, 58, 0, NULL, 'IN_STORE', NULL, 6, 194.97, 19.50, 0.00, 17),
(57, '2026-01-28 12:23:00', 150.60, 'Cash', 11, 3, 59, 0, NULL, 'IN_STORE', NULL, 1, 150.60, 0.00, 0.00, 15),
(58, '2026-01-28 13:00:00', 45.73, 'Card', 4, 1, 60, 0, NULL, 'IN_STORE', NULL, 2, 45.73, 0.00, 0.00, 4),
(59, '2026-01-29 13:37:00', 132.93, 'Card', 9, 2, 61, 0, NULL, 'IN_STORE', NULL, 1, 132.93, 0.00, 0.00, 13),
(60, '2026-01-29 14:14:00', 261.49, 'Cash', 14, 3, 62, 0, NULL, 'IN_STORE', NULL, 3, 266.49, 5.00, 0.00, 26),
(61, '2026-01-30 14:51:00', 57.02, 'Card', 3, 1, 63, 0, NULL, 'IN_STORE', NULL, 1, 57.02, 0.00, 0.00, 5),
(62, '2026-01-30 15:28:00', 90.64, 'Cash', 8, 2, 64, 0, NULL, 'IN_STORE', NULL, 7, 103.00, 12.36, 0.00, 9),
(63, '2026-01-31 16:05:00', 228.91, 'Card', 13, 3, 65, 0, NULL, 'IN_STORE', NULL, 1, 228.91, 0.00, 0.00, 22),
(64, '2026-01-31 16:42:00', 50.36, 'Card', 6, 1, 66, 0, NULL, 'IN_STORE', NULL, 4, 50.36, 0.00, 0.00, 5),
(65, '2026-02-01 17:19:00', 53.77, 'Cash', 7, 2, 67, 0, NULL, 'IN_STORE', NULL, 1, 53.77, 0.00, 0.00, 5),
(66, '2026-02-01 17:56:00', 172.92, 'Card', 12, 3, 68, 0, NULL, 'IN_STORE', NULL, 1, 172.92, 0.00, 0.00, 17),
(67, '2026-02-02 18:33:00', 154.78, 'Cash', 5, 1, 69, 0, NULL, 'IN_STORE', NULL, 6, 171.98, 17.20, 0.00, 15),
(68, '2026-02-02 19:10:00', 198.21, 'Card', 10, 2, 70, 0, NULL, 'IN_STORE', NULL, 1, 198.21, 0.00, 0.00, 19),
(69, '2026-02-03 19:47:00', 134.85, 'Card', 11, 3, 71, 0, NULL, 'IN_STORE', NULL, 2, 149.83, 14.98, 0.00, 13),
(70, '2026-02-03 20:24:00', 74.88, 'Cash', 4, 1, 72, 0, NULL, 'IN_STORE', NULL, 1, 74.88, 0.00, 0.00, 7),
(71, '2026-02-04 21:01:00', 27.77, 'Card', 9, 2, 73, 0, NULL, 'IN_STORE', NULL, 3, 32.77, 5.00, 0.00, 2),
(72, '2026-02-04 21:38:00', 105.22, 'Cash', 14, 3, 74, 0, NULL, 'IN_STORE', NULL, 1, 105.22, 0.00, 0.00, 10),
(73, '2026-02-05 22:15:00', 72.79, 'Card', 3, 1, 75, 0, NULL, 'IN_STORE', NULL, 7, 82.72, 9.93, 0.00, 7),
(74, '2026-02-05 22:52:00', 133.81, 'Card', 8, 2, 76, 0, NULL, 'IN_STORE', NULL, 1, 133.81, 0.00, 0.00, 13),
(75, '2026-02-06 23:29:00', 130.23, 'Cash', 13, 3, 77, 0, NULL, 'IN_STORE', NULL, 4, 153.21, 22.98, 0.00, 13),
(76, '2026-02-07 00:06:00', 25.27, 'Card', 6, 1, 78, 0, NULL, 'IN_STORE', NULL, 1, 25.27, 0.00, 0.00, 2),
(77, '2026-02-08 00:43:00', 58.96, 'Cash', 7, 2, 79, 0, NULL, 'IN_STORE', NULL, 1, 58.96, 0.00, 0.00, 5),
(78, '2026-02-08 01:20:00', 127.37, 'Card', 12, 3, 80, 0, NULL, 'IN_STORE', NULL, 6, 141.52, 14.15, 0.00, 12),
(79, '2026-02-09 01:57:00', 118.84, 'Card', 5, 1, 81, 0, NULL, 'IN_STORE', NULL, 1, 118.84, 0.00, 0.00, 11),
(80, '2026-02-09 02:34:00', 176.85, 'Cash', 10, 2, 82, 0, NULL, 'IN_STORE', NULL, 2, 196.50, 19.65, 0.00, 17),
(81, '2026-02-10 03:11:00', 367.69, 'Card', 11, 3, 83, 0, NULL, 'IN_STORE', NULL, 1, 367.69, 0.00, 0.00, 36),
(82, '2026-02-10 03:48:00', 52.62, 'Cash', 4, 1, 84, 0, NULL, 'IN_STORE', NULL, 3, 57.62, 5.00, 0.00, 5),
(83, '2026-02-11 04:25:00', 93.37, 'Card', 9, 2, 85, 0, NULL, 'IN_STORE', NULL, 1, 93.37, 0.00, 0.00, 9),
(84, '2026-02-11 05:02:00', 261.58, 'Card', 14, 3, 86, 0, NULL, 'IN_STORE', NULL, 7, 297.25, 35.67, 0.00, 26),
(85, '2026-02-12 05:39:00', 35.78, 'Cash', 3, 1, 87, 0, NULL, 'IN_STORE', NULL, 1, 35.78, 0.00, 0.00, 3),
(86, '2026-02-12 06:16:00', 116.44, 'Card', 8, 2, 88, 0, NULL, 'IN_STORE', NULL, 4, 136.99, 20.55, 0.00, 11),
(87, '2026-02-13 06:53:00', 305.52, 'Cash', 13, 3, 89, 0, NULL, 'IN_STORE', NULL, 1, 305.52, 0.00, 0.00, 30),
(88, '2026-02-13 07:30:00', 165.99, 'Card', 6, 1, 90, 0, NULL, 'IN_STORE', NULL, 1, 165.99, 0.00, 0.00, 16),
(89, '2026-02-14 08:07:00', 93.36, 'Card', 7, 2, 91, 0, NULL, 'IN_STORE', NULL, 6, 103.73, 10.37, 0.00, 9),
(90, '2026-02-14 08:44:00', 198.88, 'Cash', 12, 3, 92, 0, NULL, 'IN_STORE', NULL, 1, 198.88, 0.00, 0.00, 19),
(91, '2026-02-15 09:21:00', 25.28, 'Card', 5, 1, 93, 0, NULL, 'IN_STORE', NULL, 2, 25.28, 0.00, 0.00, 2),
(92, '2026-02-15 09:58:00', 58.51, 'Cash', 10, 2, 94, 0, NULL, 'IN_STORE', NULL, 1, 58.51, 0.00, 0.00, 5),
(93, '2026-02-16 10:35:00', 309.15, 'Card', 11, 3, 95, 0, NULL, 'IN_STORE', NULL, 3, 314.15, 5.00, 0.00, 30),
(94, '2026-02-16 11:12:00', 68.47, 'Card', 4, 1, 96, 0, NULL, 'IN_STORE', NULL, 1, 68.47, 0.00, 0.00, 6),
(95, '2026-02-17 11:49:00', 49.61, 'Cash', 9, 2, 97, 0, NULL, 'IN_STORE', NULL, 7, 49.61, 0.00, 0.00, 4),
(96, '2026-02-13 10:11:00', 34.80, 'Card', 3, 1, 3, 1, 1, 'IN_STORE', NULL, 1, 34.80, 0.00, 0.00, 0),
(97, '2026-02-15 10:22:00', 88.32, 'Card', 4, 1, 4, 1, 2, 'IN_STORE', NULL, 1, 88.32, 0.00, 0.00, 0),
(98, '2026-02-17 10:33:00', 49.05, 'Card', 5, 1, 5, 1, 3, 'IN_STORE', NULL, 1, 49.05, 0.00, 0.00, 0),
(99, '2026-02-19 10:44:00', 15.25, 'Card', 6, 1, 6, 1, 4, 'IN_STORE', NULL, 1, 15.25, 0.00, 0.00, 0),
(100, '2026-02-21 10:55:00', 181.42, 'Card', 7, 2, 7, 1, 5, 'IN_STORE', NULL, 1, 181.42, 0.00, 0.00, 0),
(101, '2026-02-23 11:06:00', 130.82, 'Card', 8, 2, 8, 1, 6, 'IN_STORE', NULL, 1, 130.82, 0.00, 0.00, 0),
(102, '2026-02-25 11:17:00', 50.37, 'Card', 9, 2, 9, 1, 7, 'IN_STORE', NULL, 1, 50.37, 0.00, 0.00, 0),
(103, '2026-02-27 11:28:00', 74.13, 'Card', 10, 2, 10, 1, 8, 'IN_STORE', NULL, 1, 74.13, 0.00, 0.00, 0),
(104, '2026-03-01 11:39:00', 68.78, 'Card', 11, 3, 11, 1, 9, 'IN_STORE', NULL, 1, 68.78, 0.00, 0.00, 0),
(105, '2026-03-03 11:50:00', 17.89, 'Card', 12, 3, 12, 1, 10, 'IN_STORE', NULL, 1, 17.89, 0.00, 0.00, 0),
(106, '2026-03-05 12:01:00', 63.09, 'Card', 13, 3, 13, 1, 11, 'IN_STORE', NULL, 1, 63.09, 0.00, 0.00, 0),
(107, '2026-03-07 12:12:00', 149.99, 'Card', 14, 3, 14, 1, 12, 'IN_STORE', NULL, 1, 149.99, 0.00, 0.00, 0),
(108, '2026-01-28 09:15:00', 41.36, 'Card', 3, 1, 15, 1, 13, 'IN_STORE', NULL, 1, 41.36, 0.00, 0.00, 0),
(109, '2026-01-29 09:52:00', 68.47, 'Card', 8, 2, 16, 1, 14, 'IN_STORE', NULL, 1, 68.47, 0.00, 0.00, 0),
(110, '2026-01-31 10:29:00', 14.16, 'Card', 13, 3, 17, 1, 15, 'IN_STORE', NULL, 1, 14.16, 0.00, 0.00, 0);
(1, '2026-02-02 10:11:00', 37.83, 'Cash', 3, 1, 3, 0, NULL, 'Online', 1, 1, 44.51, 0.00, 6.68, 0),
(2, '2026-02-03 10:22:00', 192.78, 'Card', 4, 1, 4, 0, NULL, 'Online', 2, 2, 252.00, 25.20, 34.02, 0),
(3, '2026-02-04 10:33:00', 363.23, 'Card', 5, 1, 5, 0, NULL, 'Online', 3, 3, 432.33, 5.00, 64.10, 0),
(4, '2026-02-05 10:44:00', 81.29, 'Cash', 6, 1, 6, 0, NULL, 'Online', 4, 7, 108.67, 13.04, 14.34, 0),
(5, '2026-02-06 10:55:00', 435.73, 'Card', 7, 2, 7, 0, NULL, 'Online', 5, 1, 512.62, 0.00, 76.89, 0),
(6, '2026-02-07 11:06:00', 409.56, 'Card', 8, 2, 8, 0, NULL, 'Online', 6, 1, 481.83, 0.00, 72.27, 0),
(7, '2026-02-08 11:17:00', 56.40, 'Cash', 9, 2, 9, 0, NULL, 'Online', 7, 4, 78.06, 11.71, 9.95, 0),
(8, '2026-02-09 11:28:00', 174.20, 'Card', 10, 2, 10, 0, NULL, 'Online', 8, 5, 212.94, 8.00, 30.74, 0),
(9, '2026-02-10 11:39:00', 619.91, 'Card', 11, 3, 11, 0, NULL, 'Online', 9, 1, 729.31, 0.00, 109.40, 0),
(10, '2026-02-11 11:50:00', 169.73, 'Card', 12, 3, 12, 0, NULL, 'Online', 10, 6, 221.87, 22.19, 29.95, 0),
(11, '2026-02-12 12:01:00', 137.86, 'Cash', 13, 3, 13, 0, NULL, 'Online', 11, 1, 162.19, 0.00, 24.33, 0),
(12, '2026-02-13 12:12:00', 453.95, 'Card', 14, 3, 14, 0, NULL, 'Online', 12, 2, 593.40, 59.34, 80.11, 0),
(13, '2026-01-05 09:15:00', 82.72, 'Card', 3, 1, 15, 0, NULL, 'In Store', NULL, 1, 82.72, 0.00, 0.00, 0),
(14, '2026-01-05 09:52:00', 120.43, 'Card', 8, 2, 16, 0, NULL, 'In Store', NULL, 2, 133.81, 13.38, 0.00, 12),
(15, '2026-01-06 10:29:00', 153.21, 'Cash', 13, 3, 17, 0, NULL, 'In Store', NULL, 1, 153.21, 0.00, 0.00, 15),
(16, '2026-01-06 11:06:00', 20.27, 'Card', 6, 1, 18, 0, NULL, 'In Store', NULL, 3, 25.27, 5.00, 0.00, 2),
(17, '2026-01-07 11:43:00', 58.96, 'Cash', 7, 2, 19, 0, NULL, 'In Store', NULL, 1, 58.96, 0.00, 0.00, 5),
(18, '2026-01-07 12:20:00', 124.54, 'Card', 12, 3, 20, 0, NULL, 'In Store', NULL, 7, 141.52, 16.98, 0.00, 12),
(19, '2026-01-08 12:57:00', 118.84, 'Card', 5, 1, 21, 0, NULL, 'In Store', NULL, 1, 118.84, 0.00, 0.00, 11),
(20, '2026-01-08 13:34:00', 167.02, 'Cash', 10, 2, 22, 0, NULL, 'In Store', NULL, 4, 196.50, 29.48, 0.00, 16),
(21, '2026-01-09 14:11:00', 367.69, 'Card', 11, 3, 23, 0, NULL, 'In Store', NULL, 1, 367.69, 0.00, 0.00, 36),
(22, '2026-01-09 14:48:00', 57.62, 'Cash', 4, 1, 24, 0, NULL, 'In Store', NULL, 1, 57.62, 0.00, 0.00, 5),
(23, '2026-01-10 15:25:00', 84.03, 'Card', 9, 2, 25, 0, NULL, 'In Store', NULL, 6, 93.37, 9.34, 0.00, 8),
(24, '2026-01-10 16:02:00', 297.25, 'Card', 14, 3, 26, 0, NULL, 'In Store', NULL, 1, 297.25, 0.00, 0.00, 29),
(25, '2026-01-11 16:39:00', 35.78, 'Cash', 3, 1, 27, 0, NULL, 'In Store', NULL, 2, 35.78, 0.00, 0.00, 3),
(26, '2026-01-11 17:16:00', 136.99, 'Card', 8, 2, 28, 0, NULL, 'In Store', NULL, 1, 136.99, 0.00, 0.00, 13),
(27, '2026-01-12 17:53:00', 300.52, 'Cash', 13, 3, 29, 0, NULL, 'In Store', NULL, 3, 305.52, 5.00, 0.00, 30),
(28, '2026-01-12 18:30:00', 165.99, 'Card', 6, 1, 30, 0, NULL, 'In Store', NULL, 1, 165.99, 0.00, 0.00, 16),
(29, '2026-01-13 19:07:00', 91.28, 'Card', 7, 2, 31, 0, NULL, 'In Store', NULL, 7, 103.73, 12.45, 0.00, 9),
(30, '2026-01-13 19:44:00', 198.88, 'Cash', 12, 3, 32, 0, NULL, 'In Store', NULL, 1, 198.88, 0.00, 0.00, 19),
(31, '2026-01-14 20:21:00', 25.28, 'Card', 5, 1, 33, 0, NULL, 'In Store', NULL, 4, 25.28, 0.00, 0.00, 2),
(32, '2026-01-14 20:58:00', 58.51, 'Cash', 10, 2, 34, 0, NULL, 'In Store', NULL, 1, 58.51, 0.00, 0.00, 5),
(33, '2026-01-15 21:35:00', 314.15, 'Card', 11, 3, 35, 0, NULL, 'In Store', NULL, 1, 314.15, 0.00, 0.00, 31),
(34, '2026-01-15 22:12:00', 61.62, 'Card', 4, 1, 36, 0, NULL, 'In Store', NULL, 6, 68.47, 6.85, 0.00, 6),
(35, '2026-01-16 22:49:00', 49.61, 'Cash', 9, 2, 37, 0, NULL, 'In Store', NULL, 1, 49.61, 0.00, 0.00, 4),
(36, '2026-01-16 23:26:00', 196.32, 'Card', 14, 3, 38, 0, NULL, 'In Store', NULL, 2, 218.13, 21.81, 0.00, 19),
(37, '2026-01-18 00:03:00', 47.92, 'Cash', 3, 1, 39, 0, NULL, 'In Store', NULL, 1, 47.92, 0.00, 0.00, 4),
(38, '2026-01-18 00:40:00', 121.03, 'Card', 8, 2, 40, 0, NULL, 'In Store', NULL, 3, 126.03, 5.00, 0.00, 12),
(39, '2026-01-19 01:17:00', 187.91, 'Card', 13, 3, 41, 0, NULL, 'In Store', NULL, 1, 187.91, 0.00, 0.00, 18),
(40, '2026-01-19 01:54:00', 108.22, 'Cash', 6, 1, 42, 0, NULL, 'In Store', NULL, 7, 122.98, 14.76, 0.00, 10),
(41, '2026-01-20 02:31:00', 67.71, 'Card', 7, 2, 43, 0, NULL, 'In Store', NULL, 1, 67.71, 0.00, 0.00, 6),
(42, '2026-01-20 03:08:00', 114.93, 'Cash', 12, 3, 44, 0, NULL, 'In Store', NULL, 4, 135.21, 20.28, 0.00, 11),
(43, '2026-01-21 03:45:00', 55.38, 'Card', 5, 1, 45, 0, NULL, 'In Store', NULL, 1, 55.38, 0.00, 0.00, 5),
(44, '2026-01-21 04:22:00', 286.34, 'Card', 10, 2, 46, 0, NULL, 'In Store', NULL, 1, 286.34, 0.00, 0.00, 28),
(45, '2026-01-22 04:59:00', 83.62, 'Cash', 11, 3, 47, 0, NULL, 'In Store', NULL, 6, 92.91, 9.29, 0.00, 8),
(46, '2026-01-22 05:36:00', 29.89, 'Card', 4, 1, 48, 0, NULL, 'In Store', NULL, 1, 29.89, 0.00, 0.00, 2),
(47, '2026-01-23 06:13:00', 161.48, 'Cash', 9, 2, 49, 0, NULL, 'In Store', NULL, 2, 179.42, 17.94, 0.00, 16),
(48, '2026-01-23 06:50:00', 210.14, 'Card', 14, 3, 50, 0, NULL, 'In Store', NULL, 1, 210.14, 0.00, 0.00, 21),
(49, '2026-01-24 07:27:00', 73.64, 'Card', 3, 1, 51, 0, NULL, 'In Store', NULL, 3, 78.64, 5.00, 0.00, 7),
(50, '2026-01-24 08:04:00', 179.28, 'Cash', 8, 2, 52, 0, NULL, 'In Store', NULL, 1, 179.28, 0.00, 0.00, 17),
(51, '2026-01-25 08:41:00', 101.67, 'Card', 13, 3, 53, 0, NULL, 'In Store', NULL, 7, 115.53, 13.86, 0.00, 10),
(52, '2026-01-25 09:18:00', 21.31, 'Cash', 6, 1, 54, 0, NULL, 'In Store', NULL, 1, 21.31, 0.00, 0.00, 2),
(53, '2026-01-26 09:55:00', 79.57, 'Card', 7, 2, 55, 0, NULL, 'In Store', NULL, 4, 93.61, 14.04, 0.00, 7),
(54, '2026-01-26 10:32:00', 156.49, 'Card', 12, 3, 56, 0, NULL, 'In Store', NULL, 1, 156.49, 0.00, 0.00, 15),
(55, '2026-01-27 11:09:00', 28.32, 'Cash', 5, 1, 57, 0, NULL, 'In Store', NULL, 1, 28.32, 0.00, 0.00, 2),
(56, '2026-01-27 11:46:00', 175.47, 'Card', 10, 2, 58, 0, NULL, 'In Store', NULL, 6, 194.97, 19.50, 0.00, 17),
(57, '2026-01-28 12:23:00', 150.60, 'Cash', 11, 3, 59, 0, NULL, 'In Store', NULL, 1, 150.60, 0.00, 0.00, 15),
(58, '2026-01-28 13:00:00', 45.73, 'Card', 4, 1, 60, 0, NULL, 'In Store', NULL, 2, 45.73, 0.00, 0.00, 4),
(59, '2026-01-29 13:37:00', 132.93, 'Card', 9, 2, 61, 0, NULL, 'In Store', NULL, 1, 132.93, 0.00, 0.00, 13),
(60, '2026-01-29 14:14:00', 261.49, 'Cash', 14, 3, 62, 0, NULL, 'In Store', NULL, 3, 266.49, 5.00, 0.00, 26),
(61, '2026-01-30 14:51:00', 57.02, 'Card', 3, 1, 63, 0, NULL, 'In Store', NULL, 1, 57.02, 0.00, 0.00, 5),
(62, '2026-01-30 15:28:00', 90.64, 'Cash', 8, 2, 64, 0, NULL, 'In Store', NULL, 7, 103.00, 12.36, 0.00, 9),
(63, '2026-01-31 16:05:00', 228.91, 'Card', 13, 3, 65, 0, NULL, 'In Store', NULL, 1, 228.91, 0.00, 0.00, 22),
(64, '2026-01-31 16:42:00', 50.36, 'Card', 6, 1, 66, 0, NULL, 'In Store', NULL, 4, 50.36, 0.00, 0.00, 5),
(65, '2026-02-01 17:19:00', 53.77, 'Cash', 7, 2, 67, 0, NULL, 'In Store', NULL, 1, 53.77, 0.00, 0.00, 5),
(66, '2026-02-01 17:56:00', 172.92, 'Card', 12, 3, 68, 0, NULL, 'In Store', NULL, 1, 172.92, 0.00, 0.00, 17),
(67, '2026-02-02 18:33:00', 154.78, 'Cash', 5, 1, 69, 0, NULL, 'In Store', NULL, 6, 171.98, 17.20, 0.00, 15),
(68, '2026-02-02 19:10:00', 198.21, 'Card', 10, 2, 70, 0, NULL, 'In Store', NULL, 1, 198.21, 0.00, 0.00, 19),
(69, '2026-02-03 19:47:00', 134.85, 'Card', 11, 3, 71, 0, NULL, 'In Store', NULL, 2, 149.83, 14.98, 0.00, 13),
(70, '2026-02-03 20:24:00', 74.88, 'Cash', 4, 1, 72, 0, NULL, 'In Store', NULL, 1, 74.88, 0.00, 0.00, 7),
(71, '2026-02-04 21:01:00', 27.77, 'Card', 9, 2, 73, 0, NULL, 'In Store', NULL, 3, 32.77, 5.00, 0.00, 2),
(72, '2026-02-04 21:38:00', 105.22, 'Cash', 14, 3, 74, 0, NULL, 'In Store', NULL, 1, 105.22, 0.00, 0.00, 10),
(73, '2026-02-05 22:15:00', 72.79, 'Card', 3, 1, 75, 0, NULL, 'In Store', NULL, 7, 82.72, 9.93, 0.00, 7),
(74, '2026-02-05 22:52:00', 133.81, 'Card', 8, 2, 76, 0, NULL, 'In Store', NULL, 1, 133.81, 0.00, 0.00, 13),
(75, '2026-02-06 23:29:00', 130.23, 'Cash', 13, 3, 77, 0, NULL, 'In Store', NULL, 4, 153.21, 22.98, 0.00, 13),
(76, '2026-02-07 00:06:00', 25.27, 'Card', 6, 1, 78, 0, NULL, 'In Store', NULL, 1, 25.27, 0.00, 0.00, 2),
(77, '2026-02-08 00:43:00', 58.96, 'Cash', 7, 2, 79, 0, NULL, 'In Store', NULL, 1, 58.96, 0.00, 0.00, 5),
(78, '2026-02-08 01:20:00', 127.37, 'Card', 12, 3, 80, 0, NULL, 'In Store', NULL, 6, 141.52, 14.15, 0.00, 12),
(79, '2026-02-09 01:57:00', 118.84, 'Card', 5, 1, 81, 0, NULL, 'In Store', NULL, 1, 118.84, 0.00, 0.00, 11),
(80, '2026-02-09 02:34:00', 176.85, 'Cash', 10, 2, 82, 0, NULL, 'In Store', NULL, 2, 196.50, 19.65, 0.00, 17),
(81, '2026-02-10 03:11:00', 367.69, 'Card', 11, 3, 83, 0, NULL, 'In Store', NULL, 1, 367.69, 0.00, 0.00, 36),
(82, '2026-02-10 03:48:00', 52.62, 'Cash', 4, 1, 84, 0, NULL, 'In Store', NULL, 3, 57.62, 5.00, 0.00, 5),
(83, '2026-02-11 04:25:00', 93.37, 'Card', 9, 2, 85, 0, NULL, 'In Store', NULL, 1, 93.37, 0.00, 0.00, 9),
(84, '2026-02-11 05:02:00', 261.58, 'Card', 14, 3, 86, 0, NULL, 'In Store', NULL, 7, 297.25, 35.67, 0.00, 26),
(85, '2026-02-12 05:39:00', 35.78, 'Cash', 3, 1, 87, 0, NULL, 'In Store', NULL, 1, 35.78, 0.00, 0.00, 3),
(86, '2026-02-12 06:16:00', 116.44, 'Card', 8, 2, 88, 0, NULL, 'In Store', NULL, 4, 136.99, 20.55, 0.00, 11),
(87, '2026-02-13 06:53:00', 305.52, 'Cash', 13, 3, 89, 0, NULL, 'In Store', NULL, 1, 305.52, 0.00, 0.00, 30),
(88, '2026-02-13 07:30:00', 165.99, 'Card', 6, 1, 90, 0, NULL, 'In Store', NULL, 1, 165.99, 0.00, 0.00, 16),
(89, '2026-02-14 08:07:00', 93.36, 'Card', 7, 2, 91, 0, NULL, 'In Store', NULL, 6, 103.73, 10.37, 0.00, 9),
(90, '2026-02-14 08:44:00', 198.88, 'Cash', 12, 3, 92, 0, NULL, 'In Store', NULL, 1, 198.88, 0.00, 0.00, 19),
(91, '2026-02-15 09:21:00', 25.28, 'Card', 5, 1, 93, 0, NULL, 'In Store', NULL, 2, 25.28, 0.00, 0.00, 2),
(92, '2026-02-15 09:58:00', 58.51, 'Cash', 10, 2, 94, 0, NULL, 'In Store', NULL, 1, 58.51, 0.00, 0.00, 5),
(93, '2026-02-16 10:35:00', 309.15, 'Card', 11, 3, 95, 0, NULL, 'In Store', NULL, 3, 314.15, 5.00, 0.00, 30),
(94, '2026-02-16 11:12:00', 68.47, 'Card', 4, 1, 96, 0, NULL, 'In Store', NULL, 1, 68.47, 0.00, 0.00, 6),
(95, '2026-02-17 11:49:00', 49.61, 'Cash', 9, 2, 97, 0, NULL, 'In Store', NULL, 7, 49.61, 0.00, 0.00, 4),
(96, '2026-02-13 10:11:00', 34.80, 'Card', 3, 1, 3, 1, 1, 'In Store', NULL, 1, 34.80, 0.00, 0.00, 0),
(97, '2026-02-15 10:22:00', 88.32, 'Card', 4, 1, 4, 1, 2, 'In Store', NULL, 1, 88.32, 0.00, 0.00, 0),
(98, '2026-02-17 10:33:00', 49.05, 'Card', 5, 1, 5, 1, 3, 'In Store', NULL, 1, 49.05, 0.00, 0.00, 0),
(99, '2026-02-19 10:44:00', 15.25, 'Card', 6, 1, 6, 1, 4, 'In Store', NULL, 1, 15.25, 0.00, 0.00, 0),
(100, '2026-02-21 10:55:00', 181.42, 'Card', 7, 2, 7, 1, 5, 'In Store', NULL, 1, 181.42, 0.00, 0.00, 0),
(101, '2026-02-23 11:06:00', 130.82, 'Card', 8, 2, 8, 1, 6, 'In Store', NULL, 1, 130.82, 0.00, 0.00, 0),
(102, '2026-02-25 11:17:00', 50.37, 'Card', 9, 2, 9, 1, 7, 'In Store', NULL, 1, 50.37, 0.00, 0.00, 0),
(103, '2026-02-27 11:28:00', 74.13, 'Card', 10, 2, 10, 1, 8, 'In Store', NULL, 1, 74.13, 0.00, 0.00, 0),
(104, '2026-03-01 11:39:00', 68.78, 'Card', 11, 3, 11, 1, 9, 'In Store', NULL, 1, 68.78, 0.00, 0.00, 0),
(105, '2026-03-03 11:50:00', 17.89, 'Card', 12, 3, 12, 1, 10, 'In Store', NULL, 1, 17.89, 0.00, 0.00, 0),
(106, '2026-03-05 12:01:00', 63.09, 'Card', 13, 3, 13, 1, 11, 'In Store', NULL, 1, 63.09, 0.00, 0.00, 0),
(107, '2026-03-07 12:12:00', 149.99, 'Card', 14, 3, 14, 1, 12, 'In Store', NULL, 1, 149.99, 0.00, 0.00, 0),
(108, '2026-01-28 09:15:00', 41.36, 'Card', 3, 1, 15, 1, 13, 'In Store', NULL, 1, 41.36, 0.00, 0.00, 0),
(109, '2026-01-29 09:52:00', 68.47, 'Card', 8, 2, 16, 1, 14, 'In Store', NULL, 1, 68.47, 0.00, 0.00, 0),
(110, '2026-01-31 10:29:00', 14.16, 'Card', 13, 3, 17, 1, 15, 'In Store', NULL, 1, 14.16, 0.00, 0.00, 0);
INSERT INTO saleItem (saleItemId, saleId, prodId, quantity, unitPrice) VALUES
(1, 1, 1, 1, 25.09),
@@ -2259,52 +2259,52 @@ SET imageUrl = REPLACE(imageUrl, 'https://images.petshop.local/stores/', '/store
WHERE imageUrl LIKE 'https://images.petshop.local/stores/%';
INSERT IGNORE INTO appointment (appointmentId, serviceId, petId, customerId, storeId, employeeId, appointmentDate, appointmentTime, appointmentStatus) VALUES
(91, 7, 37, 16, 1, 3, '2026-03-08', '09:00:00', 'COMPLETED'),
(92, 8, 38, 17, 2, 8, '2026-03-10', '10:30:00', 'COMPLETED'),
(93, 8, 39, 18, 3, 13, '2026-03-12', '13:00:00', 'MISSED'),
(94, 4, 40, 19, 1, 6, '2026-03-14', '14:30:00', 'COMPLETED'),
(95, 5, 41, 20, 2, 7, '2026-03-16', '09:00:00', 'COMPLETED'),
(96, 8, 42, 21, 3, 12, '2026-03-18', '10:30:00', 'COMPLETED'),
(97, 2, 43, 22, 1, 5, '2026-03-20', '13:00:00', 'CANCELLED'),
(98, 8, 44, 23, 2, 10, '2026-03-22', '14:30:00', 'COMPLETED'),
(99, 8, 45, 24, 3, 11, '2026-03-24', '09:00:00', 'COMPLETED'),
(100, 8, 46, 25, 1, 4, '2026-03-26', '10:30:00', 'MISSED'),
(101, 6, 47, 26, 2, 9, '2026-03-28', '13:00:00', 'COMPLETED'),
(102, 4, 48, 27, 3, 14, '2026-03-30', '14:30:00', 'COMPLETED'),
(103, 7, 49, 28, 1, 3, '2026-04-01', '09:00:00', 'COMPLETED'),
(104, 6, 50, 29, 2, 8, '2026-04-03', '10:30:00', 'COMPLETED'),
(105, 1, 51, 30, 3, 13, '2026-04-05', '13:00:00', 'MISSED'),
(106, 4, 52, 31, 1, 6, '2026-04-07', '14:30:00', 'COMPLETED'),
(107, 1, 53, 32, 2, 7, '2026-04-09', '09:00:00', 'COMPLETED'),
(108, 2, 54, 33, 3, 12, '2026-04-11', '10:30:00', 'CANCELLED'),
(109, 3, 55, 34, 1, 5, '2026-04-13', '13:00:00', 'COMPLETED'),
(110, 4, 56, 35, 2, 10, '2026-04-15', '10:00:00', 'SCHEDULED'),
(111, 5, 57, 36, 3, 11, '2026-04-16', '14:00:00', 'SCHEDULED');
(91, 7, 37, 16, 1, 3, '2026-03-08', '09:00:00', 'Completed'),
(92, 8, 38, 17, 2, 8, '2026-03-10', '10:30:00', 'Completed'),
(93, 8, 39, 18, 3, 13, '2026-03-12', '13:00:00', 'Missed'),
(94, 4, 40, 19, 1, 6, '2026-03-14', '14:30:00', 'Completed'),
(95, 5, 41, 20, 2, 7, '2026-03-16', '09:00:00', 'Completed'),
(96, 8, 42, 21, 3, 12, '2026-03-18', '10:30:00', 'Completed'),
(97, 2, 43, 22, 1, 5, '2026-03-20', '13:00:00', 'Cancelled'),
(98, 8, 44, 23, 2, 10, '2026-03-22', '14:30:00', 'Completed'),
(99, 8, 45, 24, 3, 11, '2026-03-24', '09:00:00', 'Completed'),
(100, 8, 46, 25, 1, 4, '2026-03-26', '10:30:00', 'Missed'),
(101, 6, 47, 26, 2, 9, '2026-03-28', '13:00:00', 'Completed'),
(102, 4, 48, 27, 3, 14, '2026-03-30', '14:30:00', 'Completed'),
(103, 7, 49, 28, 1, 3, '2026-04-01', '09:00:00', 'Completed'),
(104, 6, 50, 29, 2, 8, '2026-04-03', '10:30:00', 'Completed'),
(105, 1, 51, 30, 3, 13, '2026-04-05', '13:00:00', 'Missed'),
(106, 4, 52, 31, 1, 6, '2026-04-07', '14:30:00', 'Completed'),
(107, 1, 53, 32, 2, 7, '2026-04-09', '09:00:00', 'Completed'),
(108, 2, 54, 33, 3, 12, '2026-04-11', '10:30:00', 'Cancelled'),
(109, 3, 55, 34, 1, 5, '2026-04-13', '13:00:00', 'Completed'),
(110, 4, 56, 35, 2, 10, '2026-04-15', '10:00:00', 'Scheduled'),
(111, 5, 57, 36, 3, 11, '2026-04-16', '14:00:00', 'Scheduled');
INSERT IGNORE INTO sale (saleId, saleDate, totalAmount, paymentMethod, employeeId, storeId, customerId, isRefund, originalSaleId, channel, cartId, couponId, subtotalAmount, couponDiscountAmount, employeeDiscountAmount, pointsEarned) VALUES
(111, '2026-03-08 09:15:00', 87.50, 'Cash', 3, 1, 3, 0, NULL, 'IN_STORE', NULL, NULL, 87.50, 0.00, 0.00, 8),
(112, '2026-03-09 10:22:00', 145.20, 'Card', 8, 2, 4, 0, NULL, 'IN_STORE', NULL, NULL, 145.20, 0.00, 0.00, 14),
(113, '2026-03-10 11:33:00', 63.75, 'Cash', 13, 3, 5, 0, NULL, 'IN_STORE', NULL, NULL, 63.75, 0.00, 0.00, 6),
(114, '2026-03-11 12:44:00', 210.00, 'Card', 6, 1, 6, 0, NULL, 'ONLINE', NULL, NULL, 210.00, 0.00, 0.00, 21),
(115, '2026-03-12 13:55:00', 38.90, 'Cash', 7, 2, 7, 0, NULL, 'IN_STORE', NULL, NULL, 38.90, 0.00, 0.00, 3),
(116, '2026-03-14 09:10:00', 325.40, 'Card', 12, 3, 8, 0, NULL, 'ONLINE', NULL, NULL, 325.40, 0.00, 0.00, 32),
(117, '2026-03-16 10:25:00', 72.15, 'Cash', 5, 1, 9, 0, NULL, 'IN_STORE', NULL, NULL, 72.15, 0.00, 0.00, 7),
(118, '2026-03-18 11:40:00', 190.80, 'Card', 10, 2, 10, 0, NULL, 'ONLINE', NULL, NULL, 190.80, 0.00, 0.00, 19),
(119, '2026-03-20 12:55:00', 55.30, 'Cash', 11, 3, 11, 0, NULL, 'IN_STORE', NULL, NULL, 55.30, 0.00, 0.00, 5),
(120, '2026-03-22 14:10:00', 412.60, 'Card', 4, 1, 12, 0, NULL, 'ONLINE', NULL, NULL, 412.60, 0.00, 0.00, 41),
(121, '2026-03-24 09:30:00', 98.45, 'Cash', 9, 2, 13, 0, NULL, 'IN_STORE', NULL, NULL, 98.45, 0.00, 0.00, 9),
(122, '2026-03-26 10:45:00', 167.70, 'Card', 14, 3, 14, 0, NULL, 'ONLINE', NULL, NULL, 167.70, 0.00, 0.00, 16),
(123, '2026-03-28 12:00:00', 44.20, 'Cash', 3, 1, 15, 0, NULL, 'IN_STORE', NULL, NULL, 44.20, 0.00, 0.00, 4),
(124, '2026-03-30 13:15:00', 289.55, 'Card', 8, 2, 16, 0, NULL, 'ONLINE', NULL, NULL, 289.55, 0.00, 0.00, 28),
(125, '2026-04-01 09:20:00', 76.80, 'Cash', 13, 3, 17, 0, NULL, 'IN_STORE', NULL, NULL, 76.80, 0.00, 0.00, 7),
(126, '2026-04-03 10:35:00', 234.10, 'Card', 6, 1, 18, 0, NULL, 'ONLINE', NULL, NULL, 234.10, 0.00, 0.00, 23),
(127, '2026-04-05 11:50:00', 52.40, 'Cash', 7, 2, 19, 0, NULL, 'IN_STORE', NULL, NULL, 52.40, 0.00, 0.00, 5),
(128, '2026-04-07 13:05:00', 178.90, 'Card', 12, 3, 20, 0, NULL, 'ONLINE', NULL, NULL, 178.90, 0.00, 0.00, 17),
(129, '2026-04-09 09:15:00', 115.60, 'Cash', 5, 1, 21, 0, NULL, 'IN_STORE', NULL, NULL, 115.60, 0.00, 0.00, 11),
(130, '2026-04-11 10:30:00', 367.25, 'Card', 10, 2, 22, 0, NULL, 'ONLINE', NULL, NULL, 367.25, 0.00, 0.00, 36),
(131, '2026-04-14 11:45:00', 89.70, 'Cash', 11, 3, 23, 0, NULL, 'IN_STORE', NULL, NULL, 89.70, 0.00, 0.00, 8),
(132, '2026-04-15 09:00:00', 145.30, 'Card', 4, 1, 24, 0, NULL, 'ONLINE', NULL, NULL, 145.30, 0.00, 0.00, 14),
(133, '2026-04-16 10:00:00', 78.60, 'Cash', 9, 2, 25, 0, NULL, 'IN_STORE', NULL, NULL, 78.60, 0.00, 0.00, 7);
(111, '2026-03-08 09:15:00', 87.50, 'Cash', 3, 1, 3, 0, NULL, 'In Store', NULL, NULL, 87.50, 0.00, 0.00, 8),
(112, '2026-03-09 10:22:00', 145.20, 'Card', 8, 2, 4, 0, NULL, 'In Store', NULL, NULL, 145.20, 0.00, 0.00, 14),
(113, '2026-03-10 11:33:00', 63.75, 'Cash', 13, 3, 5, 0, NULL, 'In Store', NULL, NULL, 63.75, 0.00, 0.00, 6),
(114, '2026-03-11 12:44:00', 210.00, 'Card', 6, 1, 6, 0, NULL, 'Online', NULL, NULL, 210.00, 0.00, 0.00, 21),
(115, '2026-03-12 13:55:00', 38.90, 'Cash', 7, 2, 7, 0, NULL, 'In Store', NULL, NULL, 38.90, 0.00, 0.00, 3),
(116, '2026-03-14 09:10:00', 325.40, 'Card', 12, 3, 8, 0, NULL, 'Online', NULL, NULL, 325.40, 0.00, 0.00, 32),
(117, '2026-03-16 10:25:00', 72.15, 'Cash', 5, 1, 9, 0, NULL, 'In Store', NULL, NULL, 72.15, 0.00, 0.00, 7),
(118, '2026-03-18 11:40:00', 190.80, 'Card', 10, 2, 10, 0, NULL, 'Online', NULL, NULL, 190.80, 0.00, 0.00, 19),
(119, '2026-03-20 12:55:00', 55.30, 'Cash', 11, 3, 11, 0, NULL, 'In Store', NULL, NULL, 55.30, 0.00, 0.00, 5),
(120, '2026-03-22 14:10:00', 412.60, 'Card', 4, 1, 12, 0, NULL, 'Online', NULL, NULL, 412.60, 0.00, 0.00, 41),
(121, '2026-03-24 09:30:00', 98.45, 'Cash', 9, 2, 13, 0, NULL, 'In Store', NULL, NULL, 98.45, 0.00, 0.00, 9),
(122, '2026-03-26 10:45:00', 167.70, 'Card', 14, 3, 14, 0, NULL, 'Online', NULL, NULL, 167.70, 0.00, 0.00, 16),
(123, '2026-03-28 12:00:00', 44.20, 'Cash', 3, 1, 15, 0, NULL, 'In Store', NULL, NULL, 44.20, 0.00, 0.00, 4),
(124, '2026-03-30 13:15:00', 289.55, 'Card', 8, 2, 16, 0, NULL, 'Online', NULL, NULL, 289.55, 0.00, 0.00, 28),
(125, '2026-04-01 09:20:00', 76.80, 'Cash', 13, 3, 17, 0, NULL, 'In Store', NULL, NULL, 76.80, 0.00, 0.00, 7),
(126, '2026-04-03 10:35:00', 234.10, 'Card', 6, 1, 18, 0, NULL, 'Online', NULL, NULL, 234.10, 0.00, 0.00, 23),
(127, '2026-04-05 11:50:00', 52.40, 'Cash', 7, 2, 19, 0, NULL, 'In Store', NULL, NULL, 52.40, 0.00, 0.00, 5),
(128, '2026-04-07 13:05:00', 178.90, 'Card', 12, 3, 20, 0, NULL, 'Online', NULL, NULL, 178.90, 0.00, 0.00, 17),
(129, '2026-04-09 09:15:00', 115.60, 'Cash', 5, 1, 21, 0, NULL, 'In Store', NULL, NULL, 115.60, 0.00, 0.00, 11),
(130, '2026-04-11 10:30:00', 367.25, 'Card', 10, 2, 22, 0, NULL, 'Online', NULL, NULL, 367.25, 0.00, 0.00, 36),
(131, '2026-04-14 11:45:00', 89.70, 'Cash', 11, 3, 23, 0, NULL, 'In Store', NULL, NULL, 89.70, 0.00, 0.00, 8),
(132, '2026-04-15 09:00:00', 145.30, 'Card', 4, 1, 24, 0, NULL, 'Online', NULL, NULL, 145.30, 0.00, 0.00, 14),
(133, '2026-04-16 10:00:00', 78.60, 'Cash', 9, 2, 25, 0, NULL, 'In Store', NULL, NULL, 78.60, 0.00, 0.00, 7);
INSERT IGNORE INTO saleItem (saleItemId, saleId, prodId, quantity, unitPrice) VALUES
(226, 111, 5, 2, 25.50),
@@ -2452,30 +2452,30 @@ INSERT INTO activityLog (userId, storeId, usernameSnapshot, fullNameSnapshot, ro
(11, 3, 'lisa.williams', 'Lisa Williams', 'STAFF', 'West Side Store', 'Created a new appointment | POST /api/v1/appointments → 201', '2026-04-19 11:00:22');
INSERT IGNORE INTO sale (saleId, saleDate, totalAmount, paymentMethod, employeeId, storeId, customerId, isRefund, originalSaleId, channel, cartId, couponId, subtotalAmount, couponDiscountAmount, employeeDiscountAmount, pointsEarned) VALUES
(134, '2026-04-10 09:15:00', 57.67, 'Cash', 4, 1, 16, 0, NULL, 'IN_STORE', NULL, NULL, 57.67, 0.00, 0.00, 5),
(135, '2026-04-10 11:30:00', 143.55, 'Card', 8, 2, 17, 0, NULL, 'ONLINE', NULL, NULL, 143.55, 0.00, 0.00, 14),
(136, '2026-04-10 14:45:00', 50.09, 'Cash', 12, 3, 18, 0, NULL, 'IN_STORE', NULL, NULL, 50.09, 0.00, 0.00, 5),
(137, '2026-04-11 10:00:00', 114.48, 'Card', 5, 1, 19, 0, NULL, 'ONLINE', NULL, NULL, 114.48, 0.00, 0.00, 11),
(138, '2026-04-11 13:20:00', 93.55, 'Cash', 9, 2, 20, 0, NULL, 'IN_STORE', NULL, NULL, 93.55, 0.00, 0.00, 9),
(139, '2026-04-12 09:45:00', 100.71, 'Card', 13, 3, 21, 0, NULL, 'ONLINE', NULL, NULL, 100.71, 0.00, 0.00, 10),
(140, '2026-04-12 11:00:00', 51.07, 'Cash', 6, 1, 22, 0, NULL, 'IN_STORE', NULL, NULL, 51.07, 0.00, 0.00, 5),
(141, '2026-04-12 15:30:00', 139.66, 'Card', 7, 2, 23, 0, NULL, 'ONLINE', NULL, NULL, 139.66, 0.00, 0.00, 13),
(142, '2026-04-13 09:00:00', 73.98, 'Cash', 14, 3, 24, 0, NULL, 'IN_STORE', NULL, NULL, 73.98, 0.00, 0.00, 7),
(143, '2026-04-13 12:15:00', 134.76, 'Card', 4, 1, 25, 0, NULL, 'ONLINE', NULL, NULL, 134.76, 0.00, 0.00, 13),
(144, '2026-04-14 10:30:00', 80.40, 'Cash', 10, 2, 26, 0, NULL, 'IN_STORE', NULL, NULL, 80.40, 0.00, 0.00, 8),
(145, '2026-04-14 14:00:00', 125.90, 'Card', 11, 3, 27, 0, NULL, 'ONLINE', NULL, NULL, 125.90, 0.00, 0.00, 12),
(146, '2026-04-15 10:45:00', 80.62, 'Cash', 5, 1, 28, 0, NULL, 'IN_STORE', NULL, NULL, 80.62, 0.00, 0.00, 8),
(147, '2026-04-15 13:00:00', 141.28, 'Card', 8, 2, 29, 0, NULL, 'ONLINE', NULL, NULL, 141.28, 0.00, 0.00, 14),
(148, '2026-04-16 09:30:00', 97.85, 'Cash', 12, 3, 30, 0, NULL, 'IN_STORE', NULL, NULL, 97.85, 0.00, 0.00, 9),
(149, '2026-04-16 11:45:00', 89.36, 'Card', 6, 1, 31, 0, NULL, 'ONLINE', NULL, NULL, 89.36, 0.00, 0.00, 8),
(150, '2026-04-17 09:15:00', 112.38, 'Cash', 13, 3, 32, 0, NULL, 'IN_STORE', NULL, NULL, 112.38, 0.00, 0.00, 11),
(151, '2026-04-17 11:30:00', 67.49, 'Card', 5, 1, 33, 0, NULL, 'ONLINE', NULL, NULL, 67.49, 0.00, 0.00, 6),
(152, '2026-04-17 14:45:00', 158.20, 'Cash', 9, 2, 34, 0, NULL, 'IN_STORE', NULL, NULL, 158.20, 0.00, 0.00, 15),
(153, '2026-04-18 09:30:00', 84.76, 'Card', 14, 3, 35, 0, NULL, 'ONLINE', NULL, NULL, 84.76, 0.00, 0.00, 8),
(154, '2026-04-18 12:00:00', 203.15, 'Cash', 4, 1, 36, 0, NULL, 'IN_STORE', NULL, NULL, 203.15, 0.00, 0.00, 20),
(155, '2026-04-18 15:15:00', 45.93, 'Card', 7, 2, 37, 0, NULL, 'ONLINE', NULL, NULL, 45.93, 0.00, 0.00, 4),
(156, '2026-04-19 10:00:00', 129.84, 'Cash', 11, 3, 38, 0, NULL, 'IN_STORE', NULL, NULL, 129.84, 0.00, 0.00, 12),
(157, '2026-04-19 13:30:00', 76.50, 'Card', 6, 1, 39, 0, NULL, 'ONLINE', NULL, NULL, 76.50, 0.00, 0.00, 7);
(134, '2026-04-10 09:15:00', 57.67, 'Cash', 4, 1, 16, 0, NULL, 'In Store', NULL, NULL, 57.67, 0.00, 0.00, 5),
(135, '2026-04-10 11:30:00', 143.55, 'Card', 8, 2, 17, 0, NULL, 'Online', NULL, NULL, 143.55, 0.00, 0.00, 14),
(136, '2026-04-10 14:45:00', 50.09, 'Cash', 12, 3, 18, 0, NULL, 'In Store', NULL, NULL, 50.09, 0.00, 0.00, 5),
(137, '2026-04-11 10:00:00', 114.48, 'Card', 5, 1, 19, 0, NULL, 'Online', NULL, NULL, 114.48, 0.00, 0.00, 11),
(138, '2026-04-11 13:20:00', 93.55, 'Cash', 9, 2, 20, 0, NULL, 'In Store', NULL, NULL, 93.55, 0.00, 0.00, 9),
(139, '2026-04-12 09:45:00', 100.71, 'Card', 13, 3, 21, 0, NULL, 'Online', NULL, NULL, 100.71, 0.00, 0.00, 10),
(140, '2026-04-12 11:00:00', 51.07, 'Cash', 6, 1, 22, 0, NULL, 'In Store', NULL, NULL, 51.07, 0.00, 0.00, 5),
(141, '2026-04-12 15:30:00', 139.66, 'Card', 7, 2, 23, 0, NULL, 'Online', NULL, NULL, 139.66, 0.00, 0.00, 13),
(142, '2026-04-13 09:00:00', 73.98, 'Cash', 14, 3, 24, 0, NULL, 'In Store', NULL, NULL, 73.98, 0.00, 0.00, 7),
(143, '2026-04-13 12:15:00', 134.76, 'Card', 4, 1, 25, 0, NULL, 'Online', NULL, NULL, 134.76, 0.00, 0.00, 13),
(144, '2026-04-14 10:30:00', 80.40, 'Cash', 10, 2, 26, 0, NULL, 'In Store', NULL, NULL, 80.40, 0.00, 0.00, 8),
(145, '2026-04-14 14:00:00', 125.90, 'Card', 11, 3, 27, 0, NULL, 'Online', NULL, NULL, 125.90, 0.00, 0.00, 12),
(146, '2026-04-15 10:45:00', 80.62, 'Cash', 5, 1, 28, 0, NULL, 'In Store', NULL, NULL, 80.62, 0.00, 0.00, 8),
(147, '2026-04-15 13:00:00', 141.28, 'Card', 8, 2, 29, 0, NULL, 'Online', NULL, NULL, 141.28, 0.00, 0.00, 14),
(148, '2026-04-16 09:30:00', 97.85, 'Cash', 12, 3, 30, 0, NULL, 'In Store', NULL, NULL, 97.85, 0.00, 0.00, 9),
(149, '2026-04-16 11:45:00', 89.36, 'Card', 6, 1, 31, 0, NULL, 'Online', NULL, NULL, 89.36, 0.00, 0.00, 8),
(150, '2026-04-17 09:15:00', 112.38, 'Cash', 13, 3, 32, 0, NULL, 'In Store', NULL, NULL, 112.38, 0.00, 0.00, 11),
(151, '2026-04-17 11:30:00', 67.49, 'Card', 5, 1, 33, 0, NULL, 'Online', NULL, NULL, 67.49, 0.00, 0.00, 6),
(152, '2026-04-17 14:45:00', 158.20, 'Cash', 9, 2, 34, 0, NULL, 'In Store', NULL, NULL, 158.20, 0.00, 0.00, 15),
(153, '2026-04-18 09:30:00', 84.76, 'Card', 14, 3, 35, 0, NULL, 'Online', NULL, NULL, 84.76, 0.00, 0.00, 8),
(154, '2026-04-18 12:00:00', 203.15, 'Cash', 4, 1, 36, 0, NULL, 'In Store', NULL, NULL, 203.15, 0.00, 0.00, 20),
(155, '2026-04-18 15:15:00', 45.93, 'Card', 7, 2, 37, 0, NULL, 'Online', NULL, NULL, 45.93, 0.00, 0.00, 4),
(156, '2026-04-19 10:00:00', 129.84, 'Cash', 11, 3, 38, 0, NULL, 'In Store', NULL, NULL, 129.84, 0.00, 0.00, 12),
(157, '2026-04-19 13:30:00', 76.50, 'Card', 6, 1, 39, 0, NULL, 'Online', NULL, NULL, 76.50, 0.00, 0.00, 7);
INSERT IGNORE INTO saleItem (saleItemId, saleId, prodId, quantity, unitPrice) VALUES
(264, 134, 1, 2, 25.09),