class HairstyleRecommendation: def __init__(self): self.hairstyle_recommendations = { 'male': { 'Oval': ['Pompadour', 'Quiff', 'Classic Tapered Cut'], 'Diamond': ['Side Swept Bangs', 'Messy Textured Top', 'Classic Tapered Cut'], 'Square': ['Side-Parted Undercut', 'Textured Crop', 'Medium-Length Waves'], 'Triangle': ['Textured Fringe', 'Classic Side Part', 'Medium-Length Textured'], 'Oblong': ['Classic Short Back', 'Long Comb Over', 'Messy Textured Fringe'], 'Round': ['Textured Quiff', 'Undercut with Textured Comb Over', 'Slicked Back'] }, 'female': { 'Oval': ['Long Layers with Side-Swept Bangs', 'Soft Waves', 'Bob Hair Cut'], 'Diamond': ['Layered Pixie Cut', 'Asymmetrical Long Hair', 'Layered Shag Cut'], 'Square': ['Shoulder-Length Bob', 'Textured Pixie Cut', 'Layered Shaggy Cut'], 'Triangle': ['Long Layers with Volume on Top', 'Medium-Length Waves', 'Pixie Cut with Soft Fringe'], 'Oblong': ['Layered Pixie Cut', 'Long Bob', 'Side-Swept Bangs'], 'Round': ['High Ponytail', 'Asymmetrical Bob', 'Curtain Bangs'] }} self.hairstyle_images = { 'male': { 'Oval': ['pompadour.jpg', 'quiff.jpg', 'classic_tapered_cut.jpg'], 'Diamond': ['side_swept_bangs.jpg', 'messy_textured_top.jpg', 'classic_tapered_cut.jpg'], 'Square': ['side_part_undercut.jpg', 'textured_crop.jpg', 'medium_length_wave.jpg'], 'Triangle': ['textured_fringe.jpg', 'classic_side_part.jpg', 'medium_length_textured.jpg'], 'Oblong': ['classic_short_back.jpg', 'long_comb_over.jpg', 'messy_textured_fringe.jpg'], 'Round': ['textured_quiff.jpg', 'undercut_with_textured_comb_over.jpg', 'slicked_back.jpg'] }, 'female': { 'Oval': ['long_layers_with_swept_bangs.jpg', 'soft_waves.jpg', 'bob_hair_cut.jpg'], 'Diamond': ['layered_pixie_cut.jpg', 'asymmetrical_long_hair.jpg', 'layered_shag_cut.jpg'], 'Square': ['should_length_bob.jpg', 'textured_pixie_cut.jpg', 'layered_shaggy_cut.jpg'], 'Triangle': ['long_layers_with_volume_on_top.jpg', 'medium_length_wave.jpg', 'pixie_cut_with_soft_fringe.jpg'], 'Oblong': ['bob_hair_cut.jpg', 'pixie_cut.jpg', 'long_hair_pony_tail.jpg'], 'Round': ['tucked_behind_ear.jpg', 'soft_waves.jpg', 'half_up_bun_cut.jpg'] }} self.hairstyle_description = { 'male' : { 'Oval' : ['Rambut pompadour: klasik, elegan, retro, keanggunan yang abadi','Quiff: bergaya, mengangkat, sempurna untuk kepercayaan diri','Classic Tapered Cut: Rapi, maskulin, serbaguna, penampilan timeless'], 'Diamond': ['Side Swept Bangs: Anggun, romantis, feminin, menyentuh hati dengan lembut', 'Messy Textured Top: Kreatif, bebas, stylish, tampilan kasual yang berkelas', 'Classic Tapered Cut: Rapi, maskulin, serbaguna, penampilan timeless'], 'Square': ['Side Part Undercut: Modern, edgy, kontras, gaya yang berani dan tajam','Textured Crop: Trendi, dinamis, nyaman, gaya rambut yang berkelas', 'Medium Length Waves: Natural, versatile, effortless, chic beachy vibes'], 'Triangle' : ['Textured Fringe: Poni ber tekstur, gaya modern dan ekspresif dengan sentuhan dinamis','Classic Side Part: Gaya klasik dengan sentuhan rapi dan elegan','Medium Length Textured: Panjang sedang, tampilan ber tekstur yang stylish dan modern'], 'Oblong': ['Classic Short Back: Potongan belakang pendek yang timeless dan elegan', 'Long Comb Over: Gaya tata rambut panjang yang rapi dan berkelas', 'Messy Textured Fringe: Poni berantakan dengan tekstur, menciptakan tampilan yang kasual dan modis'], 'Round': ['Textured Quiff: Gaya quiff dengan sentuhan tekstur, menciptakan tampilan yang berani dan modern', 'Undercut with Textured Comb Over: Gaya undercut dengan tata rambut comb over ber tekstur, menciptakan penampilan yang edgy dan stylish','Slicked Back: Tatanan rambut rapi, elegan, dan berkelas dengan kesan tersisir ke belakang'] }, 'female' : { 'Oval': ['Long Layers with Swept Bangs: Potongan panjang bertingkat dengan poni yang digelung ke samping, menciptakan tampilan yang anggun dan modern', 'Soft Waves: Gelombang lembut, menciptakan tampilan rambut yang feminin dan elegan', 'Bob Hair Cut: Potongan rambut bob, simpel, modern, dan serbaguna'], 'Diamong': ['Layered Pixie Cut: Potongan pixie bertingkat, modis, dan memberikan dimensi pada tampilan rambut pendek','Asymmetrical Long Hair: Rambut panjang tidak simetris, menciptakan tampilan yang unik dan berani', 'Layered Shag Cut: Potongan rambut shag bertingkat, menciptakan tampilan yang berantakan namun tetap modis dan kasual'], 'Square': ['Shoulder-Length Bob: Potongan bob sejajar bahu, gaya modern yang nyaman dan serbaguna', 'Textured Pixie Cut: Potongan pixie ber tekstur, menciptakan tampilan yang edgy dan modern dengan sentuhan dinamis', 'Layered Shag Cut: Potongan rambut shag bertingkat, menciptakan tampilan yang berantakan namun tetap modis dan kasual'], 'Triangle': ['Long Layers with Volume on Top: Rambut panjang bertingkat dengan volume di bagian atas, menciptakan tampilan yang berdimensi dan bervolume', 'Medium Length Wave: Gelombang pada rambut sedang, menciptakan tampilan yang alami dan anggun', 'Pixie Cut with Soft Fringe: Potongan pixie dengan poni lembut, tampilan yang berani namun feminin'], 'Oblong': ['Bob Hair Cut: Potongan rambut bob, tampilan yang simpel, elegan, dan selalu modis','Pixie Cut: Potongan pixie, tampilan yang singkat, dinamis, dan penuh gaya', 'Long Hair Ponytail: Rambut panjang yang diikat menjadi ekor kuda, tampilan sederhana namun tetap rapi dan nyaman'], 'Round': ['Tucked Behind Ear: Gaya rambut dengan rambut diselipkan di belakang telinga, menciptakan tampilan yang bersih dan elegan', 'Soft Waves: Gelombang lembut, memberi kesan anggun dan romantis pada tatanan rambut', 'Half Up Bun Cut: Tatanan setengah ikat dengan bentuk bun, menciptakan penampilan yang santai namun modis'] } } def get_recommendation(self, gender, face_shape): recommended_styles = self.hairstyle_recommendations[gender][face_shape] style_images = self.hairstyle_images[gender][face_shape] hairstyle_description = self.hairstyle_description[gender][face_shape] return recommended_styles, style_images, hairstyle_description