feat: Update the product options model and refactor the product module (#6685)

The changes in this PR are:
1. Change how product options are created and stored. The relationship changed from
`options --> option values <-- variants`
to
`options --> option values --> variant options <-- variants`

Now we can enforce non-duplicate option values, easier creation and updates of options, and more.

2. Refactors the product module. The product module did a lot of things in a non-ideal approach, and this is a step towards a more consistent usage of the base repository and methods exposed by a module. There is still work left to improve the module, but a large chunk of the changes are included in this PR


Things to do as a follow-up:
1. Remove many-to-many relationships  if an empty list is passed in the base repository.
2. Improve the typings of the module
3. Further cleanup and improvements (there are few questions that I need answered before I can improve the API)
This commit is contained in:
Stevche Radevski
2024-03-15 12:35:46 +00:00
committed by GitHub
parent a1b4aff127
commit 1956dce80a
40 changed files with 1517 additions and 1896 deletions
+4
View File
@@ -1,3 +1,4 @@
import { TSMigrationGenerator } from "@mikro-orm/migrations"
import * as entities from "./src/models"
module.exports = {
@@ -5,4 +6,7 @@ module.exports = {
schema: "public",
clientUrl: "postgres://postgres@localhost/medusa-products",
type: "postgresql",
migrations: {
generator: TSMigrationGenerator,
},
}