Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prijs DMN integratie, mapping #14

Open
alextreme opened this issue Nov 24, 2024 · 1 comment · May be fixed by #39
Open

Prijs DMN integratie, mapping #14

alextreme opened this issue Nov 24, 2024 · 1 comment · May be fixed by #39
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@alextreme
Copy link
Member

alextreme commented Nov 24, 2024

Gebruikersverhaal

Als gemeentelijke ontwikkelaar
wil ik dat een ProductType PrijsRegels kan bevatten, waarbij elke regel een mapping biedt voor het genereren van de benodigde input voor een DMN-tabel
zodat de aanroepende applicatie de DMN-engine kan gebruiken om een actuele en relevante prijs voor een product te bepalen.


Acceptatiecriteria

PrijsRegels in ProductType

  • Het datamodel van de ProductType-entiteit bevat een veld prijsregels, dat een lijst van PrijsRegels kan opslaan.
  • Elke PrijsRegel bevat de volgende velden:
    • naam: Een beschrijvende naam voor de PrijsRegel (bijv. "Basistarief", "Korting voor inwoners jonger dan 18").
    • dmn_key: Een unieke identificatie of sleutel voor de relevante DMN-tabel. Voor nu een URL?
    • mapping: Een key-value mapping die de benodigde inputvariabelen definieert voor de DMN-tabel (bijv. {"leeftijd": "product.gebruiker.leeftijd", "woonplaats": "product.gebruiker.adres.woonplaats"}).
  • PrijsRegels worden gedefinieerd per ProductType en gelden voor alle Producten onder dat type.

Genereren van DMN-input

  • Bij het opvragen van een ProductType of een Product retourneert de API de gedefinieerde PrijsRegels inclusief de dmn_key en de mapping.
  • De API geeft geen prijsberekeningen terug, maar biedt de benodigde gegevens die een aanroepende applicatie kan gebruiken om de DMN-engine correct aan te roepen.

Validatie

  • De API valideert bij het aanmaken of wijzigen van een PrijsRegel:
    • Dat een geldige dmn_key wordt opgegeven.
    • Dat de mapping correct is gestructureerd.
  • Bij foutieve of ontbrekende waarden retourneert de API duidelijke foutmeldingen in het Nederlands, zoals:
    • "De DMN-sleutel 'basistarief' bestaat niet."
    • "De invoervariabele 'leeftijd' ontbreekt in de mapping."

API-functionaliteit

  • De API biedt endpoints voor het opvragen en beheren van PrijsRegels binnen een ProductType.
  • Bij het opvragen van een Product retourneert de API:
    • De lijst van PrijsRegels van het gekoppelde ProductType.
    • De dmn_key en de mapping van elke PrijsRegel, zodat deze door de aanroepende applicatie kan worden gebruikt.

Documentatie

  • De API-documentatie bevat voorbeelden van het instellen van PrijsRegels, inclusief het configureren van mappings en het opvragen van de benodigde gegevens voor een DMN-aanroep.
  • Voorbeeld-API-aanvragen tonen hoe een aanroepende applicatie de DMN-engine correct kan gebruiken op basis van de output van de API.

Definition of Done (DoD)

  • Het veld prijsregels is toegevoegd aan het ProductType-datamodel en geïmplementeerd in de API.
  • De API ondersteunt het beheren en opvragen van PrijsRegels met dmn_key en mapping.
  • Validatie en foutafhandeling zijn volledig geïmplementeerd.
  • Unit tests en integratietests valideren correcte output van PrijsRegels.
  • Documentatie is bijgewerkt met uitleg, voorbeelden, en validatieregels.
@alextreme alextreme added the enhancement New feature or request label Nov 24, 2024
@alextreme alextreme transferred this issue from maykinmedia/open-producten-prototype Dec 3, 2024
@alextreme alextreme changed the title Prijs, Actie DMN integratie, mappingen Prijs DMN integratie, mapping Dec 9, 2024
@Floris272 Floris272 moved this to Todo in Open Producten Jan 17, 2025
@Floris272 Floris272 moved this from Todo to In Progress in Open Producten Jan 31, 2025
@Floris272 Floris272 added blocked and removed blocked labels Feb 3, 2025
@Floris272
Copy link
Contributor

In de weekly van 4 feb. is besloten dat voor de MVP de dmn url wordt aangeroepen vanuit de client. Open Producten is dat alleen een plek waar de dmn urls kunnen worden gedefineerd zodat dit in theorie de enige plek is waar de url hoeft worden verandered in plaats van in alle verschillende applicaties.

De mapping is voor nu weggelaten maar zou in de toekomst kunnen worden toegevoegd om aan te geven waar data voor de dmn engine request vandaan moet/kan worden gehaald.

voorbeeld:
Image

Dit lijkt mij dan alleen om product type data te gaan aangezien de daadwerkelijke input van de "aanvrager"? voor het product alleen in de client zelf beschikbaar is.

Om er voor te zorgen dat de mapping in OP gelijk blijft met de dmn tabel is het een optie om de nodige velden van de dmn tabel op te vragen via de dmn api in plaats van dat dit handmatig wordt gedaan maar hiervoor is dan ook een dmn engine client in OP nodig.

@Floris272 Floris272 linked a pull request Feb 6, 2025 that will close this issue
@Floris272 Floris272 moved this from In Progress to Implemented in Open Producten Feb 6, 2025
@Floris272 Floris272 added this to the mvp 1.0.0 milestone Feb 11, 2025
@Floris272 Floris272 moved this from Implemented to In Progress in Open Producten Feb 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: In Progress
Development

Successfully merging a pull request may close this issue.

2 participants