Aller au contenu

Requêtes — récap recertification KYC

Support de SKILL.md.

run_sql Neon : project jolly-rain-97989621, branch br-rough-tooth-a2jeitjr (main), database bricks. L'outil tape le primary. Agrégat COUNT, plus la liste ci-dessous si echus_pas_outdated > 0 (max 10). Jamais un dump de customers.

WITH recertif AS (
  SELECT
    c."investorIdentityStatus"->>'status' AS identity_status,
    c."investorIdentityStatus"->'update'->>'status' AS update_status,
    timezone('Europe/Paris', (c."investorIdentityStatus"->'update'->>'dueDate')::timestamptz)::date AS due_date
  FROM customers c
  WHERE c."deletedAt" IS NULL
    AND c."investorIdentityStatus" ? 'update'
)
SELECT
  count(*) AS recertif_ouvertes,
  count(*) FILTER (WHERE identity_status = 'verified') AS verified,
  count(*) FILTER (WHERE identity_status = 'outdated') AS outdated,
  count(*) FILTER (WHERE update_status = 'requested') AS requested,
  count(*) FILTER (WHERE update_status = 'underAnalysis') AS under_analysis,
  count(*) FILTER (WHERE update_status = 'declined') AS declined,
  count(*) FILTER (WHERE due_date < timezone('Europe/Paris', now())::date) AS echeance_depassee,
  count(*) FILTER (WHERE due_date < timezone('Europe/Paris', now())::date
                     AND identity_status <> 'outdated') AS echus_pas_outdated,
  count(*) FILTER (WHERE due_date BETWEEN timezone('Europe/Paris', now())::date
                                      AND timezone('Europe/Paris', now())::date + 7) AS echeance_7j,
  count(*) FILTER (WHERE due_date BETWEEN timezone('Europe/Paris', now())::date
                                      AND timezone('Europe/Paris', now())::date + 30) AS echeance_30j
FROM recertif

Échus non outdated (LIMIT 10) :

SELECT
  c.id,
  c.email,
  timezone('Europe/Paris', (c."investorIdentityStatus"->'update'->>'dueDate')::timestamptz)::date AS due_date
FROM customers c
WHERE c."deletedAt" IS NULL
  AND c."investorIdentityStatus" ? 'update'
  AND c."investorIdentityStatus"->>'status' <> 'outdated'
  AND timezone('Europe/Paris', (c."investorIdentityStatus"->'update'->>'dueDate')::timestamptz)::date
      < timezone('Europe/Paris', now())::date
ORDER BY due_date
LIMIT 10