Files
uplifting-api/gen.ts
2024-12-11 01:13:14 -08:00

110 lines
3.7 KiB
TypeScript

// Define the structure of your data
interface Muscle {
colloquial_name: string;
scientific_name: string;
}
interface MuscleGroup {
major_group: string;
group_name: string;
muscles: Muscle[];
}
// Your JSON data
const data: MuscleGroup[] = [
{
major_group: "Upper Body",
group_name: "Chest",
muscles: [
{ colloquial_name: "Upper Pecs", scientific_name: "Clavicular Pectoralis Major" },
{ colloquial_name: "Pecs", scientific_name: "Sternal Pectoralis Major" },
]
},
{
major_group: "Upper Body",
group_name: "Back",
muscles: [
{ colloquial_name: "Lats", scientific_name: "Latissimus dorsi" },
{ colloquial_name: "Traps", scientific_name: "Trapezius" },
{ colloquial_name: "Rhomboids", scientific_name: "Rhomboideus major" },
{ colloquial_name: "Spinal Erectors", scientific_name: "Erector spinae" },
{ colloquial_name: "Teres Major", scientific_name: "Teres major" }
]
},
{
major_group: "Upper Body",
group_name: "Shoulders",
muscles: [
{ colloquial_name: "Front Delts", scientific_name: "Anterior deltoid" },
{ colloquial_name: "Rear Delts", scientific_name: "Posterior deltoid" },
{ colloquial_name: "Side Delts", scientific_name: "Lateral deltoid" },
{ colloquial_name: "Rotator Cuff", scientific_name: "Rotator cuff" }
]
},
{
major_group: "Upper Body",
group_name: "Arms",
muscles: [
{ colloquial_name: "Biceps", scientific_name: "Biceps brachii" },
{ colloquial_name: "Brachialis", scientific_name: "Brachialis" },
{ colloquial_name: "Triceps", scientific_name: "Triceps brachii" },
{ colloquial_name: "Brachioradialis", scientific_name: "Brachioradialis" },
{ colloquial_name: "Forearm Flexors/Extensors", scientific_name: "Flexor and extensor muscles of the forearm" }
]
},
{
major_group: "Core",
group_name: "Abdominals",
muscles: [
{ colloquial_name: "Abs", scientific_name: "Rectus abdominis" },
{ colloquial_name: "Transverse Abs", scientific_name: "Transversus abdominis" },
{ colloquial_name: "External Obliques", scientific_name: "Obliquus externus abdominis" },
{ colloquial_name: "Internal Obliques", scientific_name: "Obliquus internus abdominis" }
]
},
{
major_group: "Core",
group_name: "Lower Back",
muscles: [
{ colloquial_name: "QL", scientific_name: "Quadratus lumborum" },
]
},
{
major_group: "Lower Body",
group_name: "Legs",
muscles: [
{ colloquial_name: "Quads", scientific_name: "Quadriceps femoris" },
{ colloquial_name: "Hamstrings", scientific_name: "Hamstring muscles" },
{ colloquial_name: "Glutes", scientific_name: "Gluteus maximus" },
{ colloquial_name: "Glute Med", scientific_name: "Gluteus medius" },
{ colloquial_name: "Glute Min", scientific_name: "Gluteus minimus" },
{ colloquial_name: "Adductors", scientific_name: "Adductor muscles" },
{ colloquial_name: "Abductors", scientific_name: "Abductor muscles" }
]
},
{
major_group: "Lower Body",
group_name: "Calves",
muscles: [
{ colloquial_name: "Gastrocs", scientific_name: "Gastrocnemius" },
{ colloquial_name: "Soleus", scientific_name: "Soleus" }
]
}
];
// Generate SQL INSERT statements
function generateSQL(data: MuscleGroup[]): string {
let sql = "";
data.forEach((group) => {
group.muscles.forEach((muscle) => {
sql += `INSERT INTO muscles (major_group, minor_group, name, scientific_name) VALUES ('${group.major_group}', '${group.group_name}', '${muscle.colloquial_name}', '${muscle.scientific_name}');\n`;
});
});
return sql;
}
const sqlStatements = generateSQL(data);
console.log(sqlStatements);