anexado seed estado, municipio, parroquia y localidad en api

This commit is contained in:
2025-06-16 23:16:52 -04:00
parent 8216cb4e09
commit f09e12e68c
14 changed files with 17238 additions and 103 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,102 @@
export const States = [
{
id: 1,
name: "DTTO. CAPITAL",
},
{
id: 22,
name: "EDO. AMAZONAS",
},
{
id: 2,
name: "EDO. ANZOATEGUI",
},
{
id: 3,
name: "EDO. APURE",
},
{
id: 4,
name: "EDO. ARAGUA",
},
{
id: 5,
name: "EDO. BARINAS",
},
{
id: 6,
name: "EDO. BOLIVAR",
},
{
id: 7,
name: "EDO. CARABOBO",
},
{
id: 8,
name: "EDO. COJEDES",
},
{
id: 23,
name: "EDO. DELTA AMAC",
},
{
id: 9,
name: "EDO. FALCON",
},
{
id: 10,
name: "EDO. GUARICO",
},
{
id: 24,
name: "EDO. LA GUAIRA",
},
{
id: 11,
name: "EDO. LARA",
},
{
id: 12,
name: "EDO. MERIDA",
},
{
id: 13,
name: "EDO. MIRANDA",
},
{
id: 14,
name: "EDO. MONAGAS",
},
{
id: 15,
name: "EDO.NVA.ESPARTA",
},
{
id: 16,
name: "EDO. PORTUGUESA",
},
{
id: 17,
name: "EDO. SUCRE",
},
{
id: 18,
name: "EDO. TACHIRA",
},
{
id: 19,
name: "EDO. TRUJILLO",
},
{
id: 20,
name: "EDO. YARACUY",
},
{
id: 21,
name: "EDO. ZULIA",
},
{
id: 99,
name: "EMBAJADA",
},
];

View File

@@ -0,0 +1,5 @@
export * from './Localities';
export * from './Municipalities';
export * from './Parishes';
export * from './States';

View File

@@ -1,19 +1,17 @@
import { drizzle } from 'drizzle-orm/node-postgres';
import { drizzle, NodePgDatabase } from 'drizzle-orm/node-postgres';
import { Pool } from 'pg';
import { envs } from 'src/common/config/envs';
import * as schema from '../index';
import { seedAdminRole } from './admin-role.seed';
import { seedLocalities } from './localities';
import { seedParishes } from './parishes';
import { seedStates } from './states';
import { seedUserAdmin } from './user-admin.seed';
import { seedStates } from './states.seed';
import { seedMunicipalities } from './municipalities.seed';
import { seedParishes } from './parishes.seed';
async function main() {
const pool = new Pool({
connectionString: envs.dataBaseUrl,
ssl:
envs.node_env === 'production' ? { rejectUnauthorized: false } : false,
ssl: envs.node_env === 'production' ? { rejectUnauthorized: false } : false,
});
const db = drizzle(pool, { schema });
@@ -21,10 +19,11 @@ async function main() {
try {
// Run seeds in order
await seedStates(db);
await seedMunicipalities(db);
await seedMunicipalites(db);
await seedParishes(db);
await seedLocalities(db);
await seedAdminRole(db);
await seedUserAdmin(db)
await seedUserAdmin(db);
console.log('All seeds completed successfully');
} catch (error) {
@@ -35,3 +34,8 @@ async function main() {
}
main();
function seedMunicipalites(
db: NodePgDatabase<typeof schema> & { $client: Pool },
) {
throw new Error('Function not implemented.');
}

View File

@@ -0,0 +1,21 @@
import { NodePgDatabase } from 'drizzle-orm/node-postgres';
import * as schema from '../index';
import { localities } from '../index';
import { Localities } from './default';
export async function seedLocalities(db: NodePgDatabase<typeof schema>) {
for (const locality of Localities) {
const localityData = {
...locality,
createdById: 1,
updatedById: 1,
}
try {
await db.insert(localities).values(localityData).onConflictDoNothing();
} catch (error) {
console.error(`Error creating locality '${locality.name}':`, error);
}
}
console.log('localities seeded successfully');
}

View File

@@ -1,25 +0,0 @@
import { NodePgDatabase } from 'drizzle-orm/node-postgres';
import * as schema from '../index';
import { municipalities } from '../schema/general';
export async function seedMunicipalities(db: NodePgDatabase<typeof schema>) {
console.log('Seeding public municipalities...');
// Insert roles
const municipalitiesArray = [{name:'municipio1',stateId:1}, {name:'municipio2',stateId:1}, {name:'municipio3',stateId:2}];
for (const item of municipalitiesArray) {
try {
await db.insert(municipalities).values({
name: item.name,
stateId: item.stateId
}).onConflictDoNothing();
// console.log(`Municipality '${item}' created or already exists`);
} catch (error) {
console.error(`Error creating municipality '${item.name}':`, error);
}
}
console.log('All municipalities seeded successfully');
}

View File

@@ -0,0 +1,21 @@
import { NodePgDatabase } from 'drizzle-orm/node-postgres';
import * as schema from '../index';
import { municipalities } from '../index';
import { Municipalities } from './default';
export async function seedMunicipalites(db: NodePgDatabase<typeof schema>) {
for (const municipality of Municipalities) {
const municipalityData = {
...municipality,
createdById: 1,
updatedById: 1,
}
try {
await db.insert(municipalities).values(municipalityData).onConflictDoNothing();
} catch (error) {
console.error(`Error creating municipality '${municipality.name}':`, error);
}
}
console.log('Municipalities seeded successfully');
}

View File

@@ -1,25 +0,0 @@
import { NodePgDatabase } from 'drizzle-orm/node-postgres';
import * as schema from '../index';
import { parishes } from '../schema/general';
export async function seedParishes(db: NodePgDatabase<typeof schema>) {
console.log('Seeding public parishes...');
// Insert roles
const parishesArray = [{name:'parroquia1',municipalityId:1}, {name:'parroquia2',municipalityId:1}, {name:'parroquia3',municipalityId:2}];
for (const item of parishesArray) {
try {
await db.insert(parishes).values({
name: item.name,
municipalityId: item.municipalityId
}).onConflictDoNothing();
// console.log(`Parish '${item}' created or already exists`);
} catch (error) {
console.error(`Error creating parish '${item.name}':`, error);
}
}
console.log('All parishes seeded successfully');
}

View File

@@ -0,0 +1,21 @@
import { NodePgDatabase } from 'drizzle-orm/node-postgres';
import * as schema from '../index';
import { parishes } from '../index';
import { Parishes } from './default';
export async function seedParishes(db: NodePgDatabase<typeof schema>) {
for (const parish of Parishes) {
const parishData = {
...parish,
createdById: 1,
updatedById: 1,
}
try {
await db.insert(parishes).values(parishData).onConflictDoNothing();
} catch (error) {
console.error(`Error creating parihs '${parish.name}':`, error);
}
}
console.log('Parishes seeded successfully');
}

View File

@@ -1,24 +0,0 @@
import { NodePgDatabase } from 'drizzle-orm/node-postgres';
import * as schema from '../index';
import { states } from '../schema/general';
export async function seedStates(db: NodePgDatabase<typeof schema>) {
console.log('Seeding public state...');
// Insert roles
const statesArray = ['estado1', 'estado2', 'estado3'];
for (const item of statesArray) {
try {
await db.insert(states).values({
name: item
}).onConflictDoNothing();
// console.log(`State '${item}' created or already exists`);
} catch (error) {
console.error(`Error creating state '${item}':`, error);
}
}
console.log('All states seeded successfully');
}

View File

@@ -0,0 +1,21 @@
import { NodePgDatabase } from 'drizzle-orm/node-postgres';
import * as schema from '../index';
import { states } from '../index';
import { States } from './default';
export async function seedStates(db: NodePgDatabase<typeof schema>) {
for (const state of States) {
const stateData = {
...state,
createdById: 1,
updatedById: 1,
}
try {
await db.insert(states).values(stateData).onConflictDoNothing();
} catch (error) {
console.error(`Error creating state '${state.name}':`, error);
}
}
console.log('State seeded successfully');
}

View File

@@ -1,34 +1,41 @@
import { NodePgDatabase } from 'drizzle-orm/node-postgres';
import * as schema from '../index';
import { users, usersRole } from '../index';
import { users, usersRole } from '../index';
export async function seedUserAdmin(db: NodePgDatabase<typeof schema>) {
// Insert admin user
try {
// Password is already hashed in your SQL, but in a real application you might want to hash it here
// const hashedPassword = await hash('your_password', 10);
const hashedPassword = '$2b$10$6esl7d/BOINamScuReRoPuYFC8iSJgpk61LHm2X3PCU5hu/St8vHW';
const hashedPassword =
'$2b$10$6esl7d/BOINamScuReRoPuYFC8iSJgpk61LHm2X3PCU5hu/St8vHW';
const [adminUser] = await db.insert(users).values({
username: 'superadmin',
email: 'admin@zonastart.com',
fullname: 'Super Administrador',
password: hashedPassword,
state: 1,
municipality: 1,
parish: 1,
isTwoFactorEnabled: false,
isEmailVerified: true,
isActive: true
}).returning({ id: users.id }).onConflictDoNothing();
const [adminUser] = await db
.insert(users)
.values({
username: 'superadmin',
email: 'admin@fondemi.gob.ve',
fullname: 'Super Administrador',
password: hashedPassword,
state: 1,
municipality: 1,
parish: 1,
isTwoFactorEnabled: false,
isEmailVerified: true,
isActive: true,
})
.returning({ id: users.id })
.onConflictDoNothing();
if (adminUser) {
// Assign superadmin role to the user
await db.insert(usersRole).values({
roleId: 1, // Assuming 'superadmin' has ID 1 based on the insert order
userId: adminUser.id
}).onConflictDoNothing();
await db
.insert(usersRole)
.values({
roleId: 1, // Assuming 'superadmin' has ID 1 based on the insert order
userId: adminUser.id,
})
.onConflictDoNothing();
console.log('Admin user created and assigned superadmin role');
} else {
console.log('Admin user already exists, skipping');