CreditCard (Cartao de Credito)
O CreditCard representa um cartao de credito corporativo usado para despesas do petshop.
Descricao
Cartoes de credito sao usados para rastrear gastos e gerar faturas consolidadas. As transacoes no cartao sao agrupadas em faturas mensais.
Dados
Informacoes do Cartao
| Campo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| name | Texto | Sim | Nome do cartao (ex: "Visa Empresarial") |
| last_digits | Texto | Nao | Ultimos 4 digitos |
| close_day | Numero | Sim | Dia do fechamento (1-31) |
| due_day | Numero | Sim | Dia do vencimento (1-31) |
| limit | Monetario | Nao | Limite de credito |
| current_balance | Monetario | Calculado | Saldo atual (fatura aberta) |
| active | Booleano | Sim | Se esta ativo |
Dados Bancarios
| Campo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| bank_id | Referencia | Nao | Banco emissor |
| financial_account_id | Referencia | Sim | Conta para pagamento |
Relacionamentos
Pertence a
| Entidade | Obrigatorio | Descricao |
|---|---|---|
| Account | Sim | Conta do petshop |
| Store | Nao | Filial |
| Bank | Nao | Banco emissor |
| FinancialAccount | Sim | Conta de pagamento |
Possui
| Entidade | Descricao |
|---|---|
| FinancialTransactions | Transacoes no cartao |
| FinancialInvoices | Faturas geradas |
Ciclo de Fatura
Calculo do Mes da Fatura
Se dia_compra <= close_day:
mes_fatura = mes_compra
Senao:
mes_fatura = mes_compra + 1
Exemplo
Close day: 15
Compra em 10/01: Fatura de Janeiro
Compra em 20/01: Fatura de Fevereiro
Geracao de Fatura
Automatica
Quando transacao e criada com payment_account = "credit":
- Calcula mes da fatura baseado em close_day
- Busca fatura existente para o mes
- Se nao existe, cria nova FinancialInvoice
- Vincula transacao a fatura
- Atualiza valor da fatura
Dados da Fatura
| Campo | Valor |
|---|---|
| origin | "credit_card" |
| invoice_month | Mes calculado |
| value | Soma das transacoes |
| credit_card_id | Este cartao |
Pagamento da Fatura
Processo
- Usuario visualiza fatura
- Marca como paga informando data e valor
- Sistema cria transacao de pagamento
- Debita da financial_account vinculada
Pagamento Parcial
- Valor pago pode ser menor que total
- Diferenca vira nova fatura (juros)
Saldo Atual
Calculo
current_balance = soma das transacoes da fatura aberta
Atualizacao
Recalculado automaticamente quando:
- Nova transacao adicionada
- Transacao excluida
- Fatura paga
Limite
Controle
- Limite e informativo (nao bloqueia)
- Pode ser usado em alertas
- Disponivel = limite - current_balance
Validacoes
| Campo | Regra |
|---|---|
| name | Obrigatorio |
| close_day | Obrigatorio, 1-31 |
| due_day | Obrigatorio, 1-31 |
| financial_account | Obrigatorio |
Regras de Negocio
- Close day: Dia que fecha a fatura
- Due day: Dia do vencimento da fatura
- Transacoes automaticas paid: Ao usar cartao, status = "paid"
- Uma fatura por mes: Agrupamento mensal
Permissoes
| Acao | Descricao |
|---|---|
| Criar | Cadastrar novo cartao |
| Editar | Alterar configuracoes |
| Desativar | Marcar como inativo |
| Ver faturas | Visualizar faturas do cartao |
| Pagar fatura | Registrar pagamento |