from .base import BaseGenreProfile

# --- LATIN & R&B ---

class ReggaetonProfile(BaseGenreProfile):
    name = "Reggaeton"
    description = "Dem Bow beat. Heavy sub, crisp vocals."
    target_lufs = -7.5
    slope_target = -3.2
    crest_target = 9.0
    width_high = 1.2
    vintage_mode = "Solid"
    saturation = 1.0
    mono_cutoff = 100

class ModernRnBProfile(BaseGenreProfile):
    name = "Modern RnB"
    description = "SZA/Weeknd style. Deep bass, airy vocals."
    target_lufs = -8.5
    slope_target = -3.5
    crest_target = 10.0
    width_high = 1.3
    vintage_mode = "Tube"
    saturation = 1.5
    mono_cutoff = 100

class NeoSoulProfile(BaseGenreProfile):
    name = "Neo-Soul"
    description = "Warm, organic. Preserved dynamics."
    target_lufs = -10.0
    slope_target = -4.0
    crest_target = 11.0
    width_high = 1.15
    vintage_mode = "Tape"
    saturation = 1.0
    mono_cutoff = 90

class TrapsoulProfile(BaseGenreProfile):
    name = "Trapsoul"
    description = "Trap drums with RnB melodies."
    target_lufs = -8.0
    slope_target = -3.4
    crest_target = 9.5
    width_high = 1.25
    vintage_mode = "Tube"
    saturation = 2.0
    mono_cutoff = 110

class BachataProfile(BaseGenreProfile):
    name = "Bachata"
    description = "Guitar clarity. Tight percussion."
    target_lufs = -8.0
    slope_target = -3.0
    crest_target = 10.0
    width_high = 1.2
    vintage_mode = "Solid"
    saturation = 0.5
    mono_cutoff = 90

class AfrobeatsProfile(BaseGenreProfile):
    name = "Afrobeats"
    description = "Global pop style. Warm and punchy."
    target_lufs = -8.0
    slope_target = -3.4
    crest_target = 10.0
    width_high = 1.25
    vintage_mode = "Tape"
    saturation = 1.0
    mono_cutoff = 110

class DancehallProfile(BaseGenreProfile):
    name = "Dancehall"
    description = "Heavy sub pressure. Sharp snare."
    target_lufs = -7.0
    slope_target = -3.0
    crest_target = 8.5
    width_high = 1.15
    vintage_mode = "Solid"
    saturation = 1.5
    mono_cutoff = 100
