# Table Relationships and Actions
### Misc
* Certain users can approve their own changes
### Cases
* New tables needed
* None
* Primary table
* VoIP_Test
* Operations
* CUD
* Link to Lower Level
* test_steps_id -> Instruction Set ID
* Table: Instruction_Sets
### Instruction Sets
* New table needed: Yes?
* Operations
* CUD
* Clone -
* Metadata
* New test_steps_id required
* all other fields can be copied
* all the rows in PPICL_Test_Steps copied with the new test_steps_id
* Link to Lower Level
* test_steps_id -> test_steps_id
* Table: PPICL_Test_Steps
### PPICL Test Steps
* a test step is an instance of parent_command in an instruction set
* a test step cannot exist without the parent_command existing
* Actions
* Add a Test Step
* Select 1..n Existing from ParentCommands table
* Table of ParentCommands
* Select 1..n Existing from other InstructionSets-PPICL_TestSteps
* Edit a Test Step
* * Select 1..n Existing from ParentCommands table
* Table of ParentCommands
* Select 1..n Existing from other InstructionSets-PPICL_TestSteps
* Edit step meta data
* Resource - default A
* Inputs - default from parent comand
* Output - default value
* Step Action - default test
* Target (? maybe - might be 1-1 for a parent_command)
* Edit Input Arguments values for a test step
* Delete a test step
* Reorder test steps
* table - exists
* Links to Lower Level
1. test_step.parent_command
* parent_command -> parent_command
* Table: Parent_Commands
### Parent Commands
* meta table - remake ( Drop & Rebuild)
* table with all parent commands
* Clone -
* new parent_command name
* new row in parent commands table
* copies commands, responses, and validations to parent command name
* new rows in commands, responses, validations tables with new parent command name
* Create
* insert a row into parent commands table
* Edit Metadata
* edit row in parent commands table
* Delete
* delete row in parent commands table
* cascades to commands, responses, validations for that parent command
* Views:
* Parent Commands Tables
* View all parent commands - table of metadata
* Link to Lower Level
* parent_command -> parent_command
* Table: Parent_Commands
### Parent Command Steps
* tables
* PPICL_Commands
* PPICL_Platform
* PPICL_Protocol
* PPICL_Portal
* PPICL_Responses
* PPICL_Validations
* Actions
* Add a new Command from something in the reference table
* PPICL_Commands
* PPICL_Platform - maybe
* PPICL_Protocol
* PPICL_Portal - just need for selenium ops from reference
* Add a new Command from scratch for some types
* PPICL_Commands
* Edit a Command
* PPICL_Commands
* PPICL_Platform
* PPICL_Protocol
* PPICL_Portal
* Delete a Command
* delete from the associated table with that parent_command:
* PPICL_Commands
* PPICL_Platform
* PPICL_Protocol
* PPICL_Portal
* cascades to responses, validations for that parent_command->command
* Reorder Commands in parent_command
* for each command type, needs to be 1...5 columns need to be filtered down to 1
* Delete
* delete commands, responses, validations of parent command
* Parent Command Detail View
* View detail (commands-responses-validations) for a parent_command
### Reference Table
* goal - single table
* new table
* columns
* command type
* platform
* network
* command
* input meta
* name
* description
## Roles
* CUD Entities
* Approve Entities