Setup Docker infrastructure for GoMag vending import system
- Add Flask admin interface with Oracle connection pool - Create ARTICOLE_TERTI table for SKU mappings - Configure Docker container with Oracle Instant Client - Setup project documentation and requirements 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
78
api/01_create_table.sql
Normal file
78
api/01_create_table.sql
Normal file
@@ -0,0 +1,78 @@
|
||||
-- ====================================================================
|
||||
-- P1-001: Tabel ARTICOLE_TERTI pentru mapări SKU → CODMAT
|
||||
-- Sistem Import Comenzi Web → ROA
|
||||
-- ====================================================================
|
||||
|
||||
-- Creare tabel pentru mapări complexe articole
|
||||
CREATE TABLE ARTICOLE_TERTI (
|
||||
sku VARCHAR2(100) NOT NULL, -- SKU din platforma web
|
||||
codmat VARCHAR2(50) NOT NULL, -- CODMAT din nom_articole
|
||||
cantitate_roa NUMBER(10,3) DEFAULT 1, -- Câte unități ROA = 1 web
|
||||
procent_pret NUMBER(5,2) DEFAULT 100, -- % din preț pentru seturi
|
||||
activ NUMBER(1) DEFAULT 1, -- 1=activ, 0=inactiv
|
||||
data_creare DATE DEFAULT SYSDATE, -- Timestamp creare
|
||||
data_modif DATE DEFAULT SYSDATE, -- Timestamp ultima modificare
|
||||
id_util_creare NUMBER(10) DEFAULT -3, -- ID utilizator care a creat
|
||||
id_util_modif NUMBER(10) DEFAULT -3, -- ID utilizator care a modificat
|
||||
|
||||
-- Primary key compus
|
||||
CONSTRAINT pk_articole_terti PRIMARY KEY (sku, codmat),
|
||||
|
||||
-- Validări
|
||||
CONSTRAINT chk_art_terti_cantitate CHECK (cantitate_roa > 0),
|
||||
CONSTRAINT chk_art_terti_procent CHECK (procent_pret >= 0 AND procent_pret <= 100),
|
||||
CONSTRAINT chk_art_terti_activ CHECK (activ IN (0, 1))
|
||||
);
|
||||
|
||||
-- Index pentru performanță pe căutări frecvente după SKU
|
||||
CREATE INDEX idx_articole_terti_sku ON ARTICOLE_TERTI (sku, activ);
|
||||
|
||||
-- Index pentru audit și raportare
|
||||
CREATE INDEX idx_articole_terti_data ON ARTICOLE_TERTI (data_creare, activ);
|
||||
|
||||
-- Comentarii pentru documentație
|
||||
COMMENT ON TABLE ARTICOLE_TERTI IS 'Mapări SKU-uri web → CODMAT ROA pentru reîmpachetări și seturi';
|
||||
COMMENT ON COLUMN ARTICOLE_TERTI.sku IS 'SKU din platforma web (ex: GoMag)';
|
||||
COMMENT ON COLUMN ARTICOLE_TERTI.codmat IS 'CODMAT din nom_articole ROA';
|
||||
COMMENT ON COLUMN ARTICOLE_TERTI.cantitate_roa IS 'Câte unități ROA pentru 1 unitate web';
|
||||
COMMENT ON COLUMN ARTICOLE_TERTI.procent_pret IS 'Procent din preț web alocat acestui CODMAT (pentru seturi)';
|
||||
COMMENT ON COLUMN ARTICOLE_TERTI.activ IS '1=mapare activă, 0=dezactivată';
|
||||
|
||||
-- Date de test pentru validare
|
||||
INSERT INTO ARTICOLE_TERTI (sku, codmat, cantitate_roa, procent_pret, activ) VALUES
|
||||
('CAFE100', 'CAF01', 10, 100, 1); -- Reîmpachetare: 1 web = 10 ROA
|
||||
|
||||
INSERT INTO ARTICOLE_TERTI (sku, codmat, cantitate_roa, procent_pret, activ) VALUES
|
||||
('SET01', 'CAF01', 2, 60, 1); -- Set compus partea 1
|
||||
|
||||
INSERT INTO ARTICOLE_TERTI (sku, codmat, cantitate_roa, procent_pret, activ) VALUES
|
||||
('SET01', 'FILT01', 1, 40, 1); -- Set compus partea 2
|
||||
|
||||
COMMIT;
|
||||
|
||||
-- Verificare creare tabel
|
||||
SELECT 'ARTICOLE_TERTI creat cu succes' AS STATUS,
|
||||
COUNT(*) AS NR_RECORDS
|
||||
FROM ARTICOLE_TERTI;
|
||||
|
||||
-- Test integritate constraintelor
|
||||
BEGIN
|
||||
-- Test cantitate invalidă
|
||||
BEGIN
|
||||
INSERT INTO ARTICOLE_TERTI (sku, codmat, cantitate_roa) VALUES ('TEST', 'TST01', -1);
|
||||
DBMS_OUTPUT.PUT_LINE('ERROR: Constraint cantitate nu funcționează!');
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
DBMS_OUTPUT.PUT_LINE('OK: Constraint cantitate funcționează');
|
||||
END;
|
||||
|
||||
-- Test procent invalid
|
||||
BEGIN
|
||||
INSERT INTO ARTICOLE_TERTI (sku, codmat, procent_pret) VALUES ('TEST2', 'TST02', 150);
|
||||
DBMS_OUTPUT.PUT_LINE('ERROR: Constraint procent nu funcționează!');
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
DBMS_OUTPUT.PUT_LINE('OK: Constraint procent funcționează');
|
||||
END;
|
||||
END;
|
||||
/
|
||||
Reference in New Issue
Block a user