Pular para o conteúdo principal

Status: Approved · v2 · SPEC-DOMAIN-BASE-001

Tipos base e enums

Vocabulário técnico transversal do RaizFC.

Princípios

  • IDs são strings opacas e nunca números sequenciais expostos.
  • Datas trafegam como ISO-8601 strings.
  • Dinheiro usa inteiros em centavos e moeda BRL.
  • Tipos técnicos usam inglês; labels de UI usam português e vocabulário regional.
  • Status com ciclo de vida não são representados por booleanos.

Tipos base

export type ID = string;
export type ISODateString = string;
export type Slug = string;
export type Currency = "BRL";
export type MoneyAmount = { amount: number; currency: Currency };
export type Percentage = number;
export type AuditMetadata = { createdAt: ISODateString; updatedAt: ISODateString; createdBy?: ID; updatedBy?: ID };

Entidades

EntityType: user, team, torcida, player, championship, match, field, service, district, neighborhood, sponsor, wallet.

ManageableEntityType: team, torcida, championship, field, service. Jogador não é gerenciável por múltiplos gestores no MVP.

WalletOwnerType: team | torcida.

Constantes financeiras

ConstanteValorRegra
PIX_EXPIRATION_MINUTES30Prazo padrão para cobrança Pix
CREDIT_EXPIRATION_DAYS90Validade por lote
SPONSOR_LIMIT_PER_ENTITY3Máximo simultâneo
SPONSOR_PLATFORM_FEE_PERCENT20Taxa plataforma
SPONSOR_ENTITY_CREDIT_PERCENT80Crédito entidade
DONATION_PLATFORM_FEE_PERCENT5Taxa apoio
DONATION_ENTITY_CREDIT_PERCENT95Crédito entidade
PUBLIC_SUPPORTERS_LIMIT10Apoiadores públicos sem valor