Одна денежная модель, записанная дважды намеренно
Каждый итог прибыли в продукте берётся из одного модуля, и то же правило записано в базе как SQL, чтобы триггер не мог считать по одной формуле, пока экран считает по другой. Они меняются одним коммитом, или не меняется ни один. Если выручка не записана, прибыль показывается как неизвестная, а не как убыток, а уже потраченные расходы показываются отдельно, а не отбрасываются: спрятать их значило бы завысить прибыль, а это ложь в обратную сторону.
Доказательство
lib/deal-money.ts, supabase/migrations/*_profit_has_one_writer.sql
