Appearance
user_certificates
Certificates issued to learners. Includes first-time issues and reissues.
- ETL strategy:
merge - PK:
id
Columns
| Column | Type | Description |
|---|---|---|
id | BIGINT | PK. |
id_tenant | BIGINT | FK → tenants.id. |
id_product | BIGINT | FK → products.id. |
id_user | BIGINT | FK → users.id. |
is_reissued | BOOLEAN | TRUE for a reissue (reemissao = 1). The first issue is FALSE. |
uid | TEXT | Unique certificate identifier (used in the public validation URL). |
created_at | TIMESTAMPTZ | Issue date. |
deleted_at | TIMESTAMPTZ | Soft delete (revocation). |
Patterns
sql
-- Unique certificates per course (excludes reissues)
SELECT p.title, count(DISTINCT (uc.id_user, uc.id_product))
FROM lms.user_certificates uc
JOIN lms.products p ON p.id = uc.id_product AND p.id_tenant = uc.id_tenant
WHERE uc.deleted_at IS NULL
AND uc.is_reissued = FALSE
GROUP BY p.title
ORDER BY 2 DESC;For daily evolution, prefer
metrics.daily_counters(certificates_issued) ormetrics.daily_product_certificates(per-product granularity).