# Stored Procedure Naming Convention Design ## Goal Rename stored procedures to follow SQL Server best practice `usp_` prefix convention for consistency and clarity. ## Current State | Current Name | Has `usp_` Prefix | |--------------|-------------------| | `SubmitSearch` | No | | `StartSearch` | No | | `CompleteSearch` | No | | `ResetPartialSearches` | No | | `usp_ValidateSearchCriteria` | Yes (already correct) | ## Target State | Current | New | |---------|-----| | `SubmitSearch` | `usp_SubmitSearch` | | `StartSearch` | `usp_StartSearch` | | `CompleteSearch` | `usp_CompleteSearch` | | `ResetPartialSearches` | `usp_ResetPartialSearches` | ## Implementation Approach ### 1. SQL Scripts (Modify Existing) Update scripts 040-043 directly with new procedure names: - `040_CreateSubmitSearchProcedure.sql` → `usp_SubmitSearch` - `041_CreateStartSearchProcedure.sql` → `usp_StartSearch` - `042_CreateCompleteSearchProcedure.sql` → `usp_CompleteSearch` - `043_CreateResetPartialSearchesProcedure.sql` → `usp_ResetPartialSearches` ### 2. Docker Database (Manual Update) Since DbUp won't re-run already-executed scripts: 1. Drop old procedures from Docker database 2. Execute updated CREATE statements directly ### 3. C# Constants Class (New File) Create `StoredProcedures.cs` in `JdeScoping.DataAccess`: ```csharp namespace JdeScoping.DataAccess; /// /// Constants for stored procedure names. /// public static class StoredProcedures { public const string SubmitSearch = "usp_SubmitSearch"; public const string StartSearch = "usp_StartSearch"; public const string CompleteSearch = "usp_CompleteSearch"; public const string ResetPartialSearches = "usp_ResetPartialSearches"; public const string ValidateSearchCriteria = "usp_ValidateSearchCriteria"; } ``` ### 4. Repository Update Update `LotFinderRepository.SearchManagement.cs` to use constant: ```csharp // Before await using var command = new SqlCommand("SubmitSearch", connection) // After await using var command = new SqlCommand(StoredProcedures.SubmitSearch, connection) ``` ### 5. Documentation Updates Update all files mentioning procedure names: | File | Updates Needed | |------|----------------| | `DOCUMENTATION/Architecture/Testing.md` | Procedure references | | `DOCUMENTATION/Architecture/Database.md` | Procedure references | | `DOCUMENTATION/search_creation_page_new.md` | Procedure references | | OpenSpec specs | Any procedure references | | PLANS files | Historical references | ## Files Changed | Category | Files | |----------|-------| | SQL Scripts | 4 files (040-043) | | C# New | 1 file (`StoredProcedures.cs`) | | C# Modified | 1 file (`LotFinderRepository.SearchManagement.cs`) | | Documentation | ~5 files | | Docker | Manual SQL execution | ## Verification 1. Build succeeds 2. All existing tests pass 3. Docker database has renamed procedures 4. `SELECT name FROM sys.procedures` shows `usp_` prefix on all procedures