Regras Simulação Frete
Lista regras de simulação de frete
Retorna as regras da empresa **ordenadas por `Priority` crescente** e, em empate, por `IDCarrierQuotationRule` DESC (até 1000 itens). Inclui regras Ativas (`Status=1`) e Inativas (`Status=0`), mas oculta as Excluídas (`Status=2`). Cada item já vem com `ConditionsRules` (array de condições com `ConditionValue` quebrado em vetor pelo separador `,`), `ConditionNames` (string concatenada com nomes das condições, usada na grid) e `CarrierQuotationRuleLog` (histórico de alterações em formato `DE: <antes> PARA: <depois>`).
Cria uma regra de simulação de frete
Cria uma regra para a empresa autenticada, com 1+ condições e 1 ação. O backend valida cada condição pelo `IDTypeCarrierQuotationConditionRule` informado:
Detalha uma regra de simulação de frete
Retorna a regra completa: cabeçalho (`CarrierQuotationRuleName`, `Priority`, `Status`, `DateFrom`, `DateTo`, ação e valor), `ConditionsRules` com cada condição quebrada em vetor pelo separador `,`, e `CarrierQuotationRuleLog` ordenado por `IDCarrierQuotationRuleLog` DESC (histórico de alterações em formato `DE: <antes> PARA: <depois>` e `<NomeCondicao>_Adicionado` / `<NomeCondicao>_Removido`).
Atualiza uma regra de simulação de frete
**Atualização total** do cabeçalho (`CarrierQuotationRuleName`, `Priority`, `Status`, `DateFrom`, `DateTo`, `IDTypeCarrierQuotationActionRule`, `ActionValue`) — campos que não vêm no body são gravados como NULL. As **condições** seguem a lógica de diff: o backend compara `Conditions` com o que já está em `CarrierQuotationRuleCondition` e:
Exclui uma regra de simulação de frete
**Soft delete** — `UPDATE CarrierQuotationRule SET Status = 2 WHERE IDCarrierQuotationRule = ?`. A regra deixa de aparecer na listagem (`Status IN (0,1)`) e sai do cache Redis (`CarrierQuotationRuleCondition:<accountname>` é regravado só com regras Ativas). Devolve a string literal `'Sucesso!'`.