9.1 KiB
Phase 7: Service & DTO Update Checklist
Overview
All entity schemas have been updated. This checklist covers required changes to compile the application.
1. Store → StoreLocation Updates
Repositories
StoreRepository.java- Updated to use StoreLocation
Services
-
StoreService.java- Change all
Store→StoreLocation - Update field references:
store.getStoreLocation()→store.getAddress() - Update DTOs to match StoreLocation fields
- Change all
-
SaleService.java- Change
Store store→StoreLocation store - Update
.getStore()→ returns StoreLocation - Update DTO mappings
- Change
-
InventoryService.java- Remove all Store/storeId references (inventory is now global)
- Update queries to remove store filtering
-
AnalyticsService.java- Update Store references to StoreLocation
DTOs
-
dto/store/StoreRequest.java→ rename/update to StoreLocationRequest- Update fields: add
address,phone,email - Remove
storeLocationfield
- Update fields: add
-
dto/store/StoreResponse.java→ rename/update to StoreLocationResponse- Change all field names to match StoreLocation entity
-
dto/sale/SaleResponse.java- Update Store references to StoreLocation
-
dto/inventory/InventoryResponse.java- Remove
storeIdandstoreNamefields
- Remove
Controllers
StoreController.java- Update all Store references to StoreLocation
2. User → Employee Updates (Sales)
Services
SaleService.java- Change
User employee→Employee employee - Update repository/entity references
- Map employee fields correctly (employeeId, firstName, lastName)
- Change
DTOs
-
dto/sale/SaleRequest.java- Change
userId→employeeId
- Change
-
dto/sale/SaleResponse.java- Add employee details (firstName, lastName, not username/fullName)
3. ID Field Name Changes
All Services - Update getter/setter calls:
-
PetService.java.getId()→.getPetId().setId()→.setPetId()
-
CustomerService.java.getId()→.getCustomerId().setId()→.setCustomerId()
-
ProductService.java.getId()→.getProdId().setId()→.setProdId()
-
SupplierService.java.getId()→.getSupId().setId()→.setSupId()
-
CategoryService.java.getId()→.getCategoryId().setId()→.setCategoryId()
-
ServiceService.java(service for Service entity).getId()→.getServiceId().setId()→.setServiceId()
-
AdoptionService.java.getId()→.getAdoptionId().setId()→.setAdoptionId()
-
AppointmentService.java.getId()→.getAppointmentId().setId()→.setAppointmentId()
-
SaleService.java.getId()→.getSaleId().setId()→.setSaleId()
-
SaleItemRepository.java/SaleService.java.getId()→.getSaleItemId()
-
InventoryService.java.getId()→.getInventoryId()
-
PurchaseOrderService.java.getId()→.getPurchaseOrderId().setId()→.setPurchaseOrderId()
All DTOs - Update field names:
- All Response DTOs: change
id→ specific ID field (petId,customerId, etc.) - All Request DTOs: update ID references accordingly
4. Enum → String Conversions
Services
-
PetService.java- Remove
Pet.PetStatusenum references - Use
Stringfor status - Update validation to check string values ("Available", "Adopted", etc.)
- Remove
-
AppointmentService.java- Remove
Appointment.AppointmentStatusenum - Use
Stringfor appointmentStatus - Update validation to check string values ("Booked", "Completed", "Cancelled")
- Remove
-
PurchaseOrderService.java- Remove
PurchaseOrder.OrderStatusenum - Use
Stringfor status - Update validation to check string values ("Pending", "Delivered", etc.)
- Remove
DTOs
-
dto/pet/PetRequest.java&PetResponse.java- Change
PetStatus status→String petStatus
- Change
-
dto/appointment/AppointmentRequest.java&AppointmentResponse.java- Change
AppointmentStatus status→String appointmentStatus
- Change
-
dto/purchaseorder/PurchaseOrderRequest.java&PurchaseOrderResponse.java- Change
OrderStatus status→String status
- Change
5. Removed Fields - Delete References
CustomerService.java & DTOs
- Remove
customerAddressfield - Update
Customerentity mappings
SupplierService.java & DTOs
- Remove
activefield - Remove
supplierAddressfield - Split contact:
supplierContact→supContactFirstName+supContactLastName
ServiceService.java & DTOs
- Remove
activefield
ProductService.java & DTOs
- Remove
activefield
SaleService.java & DTOs
- Remove
customerfield (sales no longer track customer) - Remove
subtotalfield - Remove
taxfield - Remove
notesfield - Change
total→totalAmount
SaleItemService/DTOs
- Remove
subtotalfield from SaleItem
InventoryService.java & DTOs
- Remove
reorderLevelfield - Remove
lastRestockedfield
PurchaseOrderService.java & DTOs
- Remove
expectedDeliveryfield - Remove
totalAmountfield - Remove
notesfield - Remove
itemslist (PurchaseOrderItem not in desktop schema)
AdoptionService.java & DTOs
- Remove
adoptionFeefield - Remove
notesfield - Add
adoptionStatusfield
6. Renamed Fields (snake_case → camelCase)
Customer
customer_name→ split tofirstName+lastNamecustomer_email→emailcustomer_phone→phone
Pet
pet_name→petNamepet_species→petSpeciespet_breed→petBreedpet_age→petAgepet_status→petStatuspet_price→petPrice
Product
product_name→prodNameproduct_description→prodDescproduct_price→prodPricecategory_id→categoryId(FK)
Supplier
supplier_name→supCompanysupplier_contact→supContactFirstName+supContactLastNamesupplier_email→supEmailsupplier_phone→supPhone
Category
category_name→categoryNamecategory_description→categoryType
Service
service_name→serviceNameservice_description→serviceDescservice_price→servicePriceservice_duration_minutes→serviceDuration
Sale
sale_date→saleDateemployee_id→employeeId(FK)store_id→storeId(FK)total→totalAmountpayment_method→paymentMethod- Add
isRefundfield - Add
originalSaleIdfield (FK to sale)
SaleItem
sale_id→saleId(FK)product_id→prodId(FK)unit_price→unitPrice
Appointment
appointment_date→appointmentDateappointment_time→appointmentTimestatus→appointmentStatus- Join table:
appointment_pets→appointmentPet
Adoption
pet_id→petId(FK)customer_id→customerId(FK)adoption_date→adoptionDate- Add
adoptionStatus
Inventory
product_id→prodId(FK)
ProductSupplier
product_id→prodId(FK)supplier_id→supId(FK)cost_price→cost
PurchaseOrder
supplier_id→supId(FK)order_date→orderDate
7. New Entities - Add Services/Controllers (Optional)
These entities exist but may not need full CRUD yet:
EmployeeService.java- basic CRUD for employeesEmployeeController.java- REST endpoints for employeesActivityLogService.java- logging service- Employee/ActivityLog DTOs
8. DropdownController Updates
DropdownController.java- Update queries for renamed columns
- Update Store → StoreLocation references
- Fix any broken field references
9. Validation & Error Messages
After making all changes above:
- Search codebase for any remaining references to removed fields
- Update validation error messages to use new field names
- Update API documentation (Swagger annotations)
Quick Search Commands
Find remaining issues:
# Find Store references (should be StoreLocation)
grep -r "import.*\.Store;" src/main/java --include="*.java"
# Find .getId() calls (should be specific IDs)
grep -r "\.getId()" src/main/java/com/petshop/backend/service
# Find enum references
grep -r "PetStatus\|AppointmentStatus\|OrderStatus" src/main/java --include="*.java"
# Find removed fields
grep -r "customerAddress\|subtotal\|active" src/main/java --include="*.java"
Testing After Changes
- Verify compilation:
mvn clean compile - Run tests:
mvn test - Start services:
docker-compose up -d - Test endpoints with updated field names