When we get UMB message with productCode we should persist it in Contracts table.
It should be added as a uniqueConstraint to the current list subscription_number, start_date, product_id. It may not be required since we have product_id unique but, won't hurt adding it as unique?
This will help in syncContractsByOrg functionality to query the Partner Gateway API to get unique results back.
What do we do with contract records already in the table?
- create liquibase script that will drop & recreate, with vendorProductCode as a column and part of the constraint this time
What contract test API updates do we need?
- vendorProductCode will become a required field when you POST a contract
- vendorProductCode needs to be returned as part of the payload on GET. Also make vendorProductCode an optional query param
- PUT should not allow you to edit vendorProductCode
- Validate via gabi, check that contracts have the product code populated
- Update the contracts API tests to check for this
- Update helpers to include mock values in generate payload functions, update other helpers might be required too because of being a required field
- Update CRUD tests to check and verify for this field
- Update get_contracts_filter tests to verify filtering for this field too
- Update contract_update tests:
- Update scenario should work similar to product_id, where you can't 'update' it and it should create a new contract instead