adision de bases para trabajo completo de back-v1.0.0

This commit is contained in:
2026-04-08 15:05:29 -07:00
parent 290a32364d
commit 75ecb00a94
89 changed files with 1630 additions and 2350 deletions

42
app/helpers/db_adapter.py Normal file
View File

@@ -0,0 +1,42 @@
from typing import List, Dict
from database import sessionLocal
from app.modules.edos.models import EDOS
class DBAdapter:
""" Adapter: insert cleen data on a db"""
def __inti__(self):
self.db = sessionLocal()
def insert_filtered_data(self, mapped_rows: List[Dict]) -> Dict:
""" Insert only data filtered and mapped"""
results = {
'total_processed': len(mapped_rows),
'inserted': 0,
'errors': [],
'duplicates_skiped': 0
}
for row in mapped_rows:
try:
#verified dupled data
existing = self.db.query(EDOS).filter_by(
unique_field=row.get('unique_field')
).first()
if existing:
results['duplicates_skiped'] += 1
continue
instance = EDOS(**row)
self.db.add(instance)
self.db.commit()
results['inserted'] += 1
except Exception as e:
self.db.rollback()
results['errors'].append({
'row': row,
'error': str(e)
})
self.db.close()
return results