Problem ze schematem modeli - prośba o radę

Cześć,

do tej pory tylko czytałem forum i dzisiaj nadszedł czas kiedy trzeba się ujawnić z problemem.

Mam program w Rails będący nakładką na Subiekta i służący wsparciu sprzedaży. Sprzedawcy mają dostęp do przypisanych im faktur i od tego otrzymują prowizję. Podstawą faktury jest linijka danej faktury.
Jest model Dokument, który przedstawia fakturę.
Stworzyłem też model Raport, który pobiera linijki, agreguje je i podlicza prowizję dla sprzedawców. Różne linijki, różna prowizja.

Pytanie o strukturę modeli.

  1. Wydaje mi się, że to co zrobiłem jest trochę nie po Railsowemu, bo zarówno Dokument i Raport opiera się na Linijkach i w sumie można to było załatwić w kontrolerze linijek. Ale jakoś tak wydawało mi się bardziej przejrzyście. Pytanie czy dobrze.
  2. Algorytm prowizji zmienia się w czasie. W którym miejscu powinienem umieścić ten algorytm? W tej chwili jest w kontrolerze raportu, gdzie sprawdza zakres dat i przyporządkowuje odpowiedni sposób naliczania prowizji. Niby działa, ale wydaje mi się, że można to zrobić lepiej.

A możesz rozwinąć definicję “linijka”?

Nazewnictwo przyjęte z POS-ów. Linijka czyli pojedyncza pozycja na fakturze/zamówieniu.
Id, dokument_id, produkt_id, ilość, cena, wartość