Repositorio de codigos de activacion + test

This commit is contained in:
2026-03-10 12:38:55 +01:00
parent 5e76c4f48c
commit 07d49aab29
5 changed files with 134 additions and 1134 deletions

View File

@@ -29,17 +29,6 @@ AS $$
$$
;
-- 2. Tabla de Tarjetas
-- Posiblemente haya que mantener solo el id e ignorar el PAN
CREATE TABLE payment_cards (
card_id UUID PRIMARY KEY DEFAULT uuid_generate_v7(),
user_id UUID REFERENCES users(user_id),
pan_last_four VARCHAR(4) NOT NULL,
card_holder_name VARCHAR(100) NOT NULL,
status VARCHAR(20) DEFAULT 'PENDING_ACTIVATION', -- PENDING, ACTIVE, BLOCKED, EXPIRED
created_at TIMESTAMPTZ DEFAULT NOW(),
activated_at TIMESTAMPTZ
);
-- 3. Tabla de Códigos de Activación
-- No creo que vaya a recibir confirmación de activación porque es de otro proyecto,
@@ -47,8 +36,8 @@ CREATE TABLE payment_cards (
-- El algoritmo de hash es sha256
CREATE TABLE activation_codes (
code_id UUID PRIMARY KEY DEFAULT uuid_generate_v7(),
card_id UUID REFERENCES payment_cards(card_id), -- Una tarjeta, maximo un un código activo borrar o solo con expires_at?
code_plain TEXT NOT NULL, --
card_id UUID NOT NULL, -- ID EXTERNO
code_plain TEXT NOT NULL,
code_hash TEXT NOT NULL, -- Guardar el código hasheado, el original se imprime y se manda
is_used BOOLEAN DEFAULT FALSE,
is_blocked BOOLEAN DEFAULT FALSE,
@@ -61,7 +50,7 @@ CREATE TABLE activation_codes (
-- Lo mismo, muy sobredimensionado, no creo que haya falta en este punto
CREATE TABLE activation_logs (
log_id UUID PRIMARY KEY DEFAULT uuid_generate_v7(),
card_id UUID REFERENCES payment_cards(card_id),
card_id UUID NOT NULL, -- ID EXTERNO
code_id UUID REFERENCES activation_codes(code_id),
action_type VARCHAR(50) NOT NULL, -- TODO: CREAR ENUM'GENERATED', 'ATTEMPT_FAILED', 'ACTIVATED'
ip_address INET,