332 lines
9.1 KiB
Markdown
332 lines
9.1 KiB
Markdown
# 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
|
|
- [x] `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
|
|
|
|
- [ ] `SaleService.java`
|
|
- [ ] Change `Store store` → `StoreLocation store`
|
|
- [ ] Update `.getStore()` → returns StoreLocation
|
|
- [ ] Update DTO mappings
|
|
|
|
- [ ] `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 `storeLocation` field
|
|
|
|
- [ ] `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 `storeId` and `storeName` fields
|
|
|
|
### 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)
|
|
|
|
### DTOs
|
|
- [ ] `dto/sale/SaleRequest.java`
|
|
- [ ] Change `userId` → `employeeId`
|
|
|
|
- [ ] `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.PetStatus` enum references
|
|
- [ ] Use `String` for status
|
|
- [ ] Update validation to check string values ("Available", "Adopted", etc.)
|
|
|
|
- [ ] `AppointmentService.java`
|
|
- [ ] Remove `Appointment.AppointmentStatus` enum
|
|
- [ ] Use `String` for appointmentStatus
|
|
- [ ] Update validation to check string values ("Booked", "Completed", "Cancelled")
|
|
|
|
- [ ] `PurchaseOrderService.java`
|
|
- [ ] Remove `PurchaseOrder.OrderStatus` enum
|
|
- [ ] Use `String` for status
|
|
- [ ] Update validation to check string values ("Pending", "Delivered", etc.)
|
|
|
|
### DTOs
|
|
|
|
- [ ] `dto/pet/PetRequest.java` & `PetResponse.java`
|
|
- [ ] Change `PetStatus status` → `String petStatus`
|
|
|
|
- [ ] `dto/appointment/AppointmentRequest.java` & `AppointmentResponse.java`
|
|
- [ ] Change `AppointmentStatus status` → `String appointmentStatus`
|
|
|
|
- [ ] `dto/purchaseorder/PurchaseOrderRequest.java` & `PurchaseOrderResponse.java`
|
|
- [ ] Change `OrderStatus status` → `String status`
|
|
|
|
---
|
|
|
|
## 5. Removed Fields - Delete References
|
|
|
|
### CustomerService.java & DTOs
|
|
- [ ] Remove `customerAddress` field
|
|
- [ ] Update `Customer` entity mappings
|
|
|
|
### SupplierService.java & DTOs
|
|
- [ ] Remove `active` field
|
|
- [ ] Remove `supplierAddress` field
|
|
- [ ] Split contact: `supplierContact` → `supContactFirstName` + `supContactLastName`
|
|
|
|
### ServiceService.java & DTOs
|
|
- [ ] Remove `active` field
|
|
|
|
### ProductService.java & DTOs
|
|
- [ ] Remove `active` field
|
|
|
|
### SaleService.java & DTOs
|
|
- [ ] Remove `customer` field (sales no longer track customer)
|
|
- [ ] Remove `subtotal` field
|
|
- [ ] Remove `tax` field
|
|
- [ ] Remove `notes` field
|
|
- [ ] Change `total` → `totalAmount`
|
|
|
|
### SaleItemService/DTOs
|
|
- [ ] Remove `subtotal` field from SaleItem
|
|
|
|
### InventoryService.java & DTOs
|
|
- [ ] Remove `reorderLevel` field
|
|
- [ ] Remove `lastRestocked` field
|
|
|
|
### PurchaseOrderService.java & DTOs
|
|
- [ ] Remove `expectedDelivery` field
|
|
- [ ] Remove `totalAmount` field
|
|
- [ ] Remove `notes` field
|
|
- [ ] Remove `items` list (PurchaseOrderItem not in desktop schema)
|
|
|
|
### AdoptionService.java & DTOs
|
|
- [ ] Remove `adoptionFee` field
|
|
- [ ] Remove `notes` field
|
|
- [ ] Add `adoptionStatus` field
|
|
|
|
---
|
|
|
|
## 6. Renamed Fields (snake_case → camelCase)
|
|
|
|
### Customer
|
|
- [ ] `customer_name` → split to `firstName` + `lastName`
|
|
- [ ] `customer_email` → `email`
|
|
- [ ] `customer_phone` → `phone`
|
|
|
|
### Pet
|
|
- [ ] `pet_name` → `petName`
|
|
- [ ] `pet_species` → `petSpecies`
|
|
- [ ] `pet_breed` → `petBreed`
|
|
- [ ] `pet_age` → `petAge`
|
|
- [ ] `pet_status` → `petStatus`
|
|
- [ ] `pet_price` → `petPrice`
|
|
|
|
### Product
|
|
- [ ] `product_name` → `prodName`
|
|
- [ ] `product_description` → `prodDesc`
|
|
- [ ] `product_price` → `prodPrice`
|
|
- [ ] `category_id` → `categoryId` (FK)
|
|
|
|
### Supplier
|
|
- [ ] `supplier_name` → `supCompany`
|
|
- [ ] `supplier_contact` → `supContactFirstName` + `supContactLastName`
|
|
- [ ] `supplier_email` → `supEmail`
|
|
- [ ] `supplier_phone` → `supPhone`
|
|
|
|
### Category
|
|
- [ ] `category_name` → `categoryName`
|
|
- [ ] `category_description` → `categoryType`
|
|
|
|
### Service
|
|
- [ ] `service_name` → `serviceName`
|
|
- [ ] `service_description` → `serviceDesc`
|
|
- [ ] `service_price` → `servicePrice`
|
|
- [ ] `service_duration_minutes` → `serviceDuration`
|
|
|
|
### Sale
|
|
- [ ] `sale_date` → `saleDate`
|
|
- [ ] `employee_id` → `employeeId` (FK)
|
|
- [ ] `store_id` → `storeId` (FK)
|
|
- [ ] `total` → `totalAmount`
|
|
- [ ] `payment_method` → `paymentMethod`
|
|
- [ ] Add `isRefund` field
|
|
- [ ] Add `originalSaleId` field (FK to sale)
|
|
|
|
### SaleItem
|
|
- [ ] `sale_id` → `saleId` (FK)
|
|
- [ ] `product_id` → `prodId` (FK)
|
|
- [ ] `unit_price` → `unitPrice`
|
|
|
|
### Appointment
|
|
- [ ] `appointment_date` → `appointmentDate`
|
|
- [ ] `appointment_time` → `appointmentTime`
|
|
- [ ] `status` → `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 employees
|
|
- [ ] `EmployeeController.java` - REST endpoints for employees
|
|
- [ ] `ActivityLogService.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:
|
|
```bash
|
|
# 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
|
|
|
|
1. Verify compilation: `mvn clean compile`
|
|
2. Run tests: `mvn test`
|
|
3. Start services: `docker-compose up -d`
|
|
4. Test endpoints with updated field names
|