bgerp/bgerp — Issue #166: Идея за автоматично пресортиране на писмата
Author: stvvt
Created: 2012-01-20 16:31:07+00:00
State: open

Да добавим поле `locationTrust` на модела `email_Messages`, което изразява доколко сериозна е причината писмото да се намира там, където е в момента (`folderId`, `threadId`).

На всяко правило за рутиране (на всички правила, не само записаните в `email_Router`) да съпоставим една уникална (константна) стойност `priority` нарастваща заедно с нарастването на приоритета на правилото. Така правилото за рутиране по налична информация за нишка би имало най-висока стойност, а правилото `To` - най-ниска.

След всяко **рутиране** на писмо (`email_Messages::route()`) да записваме и полето `locationTrust` със стойност - числовото изражение на приоритета на правилото, по което това писмо е било рутирано.

След всяко **преместване** на писмо, задаваме стойност на `locationTrust` **строго по-голяма** от приоритетите на всички правила за рутиране (изразявайки факта, че мястото, където човек е поставил писмото е с най-висока достоверност).

И накрая, след всяко създаване на правило за рутиране (т.е. след запис в модела `email_Router`) **прерутираме всички `email_Messages`, за които `locationTrust` е строго по-малко от приоритета на току що създаденото правило**

Ефекта от това "прерутиране" е същия, както ако въпросните писма с по-ниска достоверност на локацията си бяха пристигнали по-късно във времето - след писмото (или потребителското действие) генериращо правило за рутиране с по-висок приоритет. Това ми звучи като гаранция, че ... нищо неочаквано няма да се случи с локациите на автоматично прерутираните писма.

Няколко сценария, следващи от всичко това и които ми се струват желани:

* имаме получени няколко писма от един изпращач от Франция, напр. `sender@france.fr`, който е непознат за системата (няма визитка, няма и папка). По тази причина писмата му са попаднали в папка `Unsorted - France`. В момента, в който създадем визитка на този изпращач, ще се създаде правило за рутиране тип `From`, което е с по-висок приоритет от `locationTrust` записана в писмата от него към момента. Така самото създаване на визитката (в този случай) автоматично ще прехвърли всичките писма от `sender@france.fr` директно в неговата папка.

* to be continued ...

В момента не мога да преценя какво следва да се случи с `locationTrust` на писмата, "прерутирани" по този начин.