from .base import BaseGenreProfile

# --- 3. BASS MUSIC & 8. UK BASS ---

class HeavyDubstepProfile(BaseGenreProfile):
    name = "Heavy Dubstep"
    description = "Loudness war winner. Multiband limiting."
    target_lufs = -5.5
    slope_target = -2.5
    crest_target = 6.0
    width_high = 1.3
    vintage_mode = "Solid"
    saturation = 3.0
    mono_cutoff = 150

class RiddimProfile(BaseGenreProfile):
    name = "Riddim"
    description = "Swampy, repetitive. 200Hz cut."
    target_lufs = -7.0
    slope_target = -3.5
    crest_target = 8.0
    width_high = 1.1
    vintage_mode = "Tube"
    saturation = 2.0
    mono_cutoff = 160

class MelodicDubstepProfile(BaseGenreProfile):
    name = "Melodic Dubstep"
    description = "Supersaws meets clean sub."
    target_lufs = -8.0
    slope_target = -3.0
    crest_target = 9.0
    width_high = 1.4
    vintage_mode = "Tape"
    saturation = 1.5
    mono_cutoff = 130

class ColorBassProfile(BaseGenreProfile):
    name = "Color Bass"
    description = "Melodic riddim. Spectral smoothing."
    target_lufs = -7.0
    slope_target = -2.8
    crest_target = 8.0
    width_high = 1.35
    vintage_mode = "Solid"
    saturation = 1.5
    mono_cutoff = 140

class TrapEDMProfile(BaseGenreProfile):
    name = "Trap EDM"
    description = "808 distortion texture."
    target_lufs = -7.0
    slope_target = -3.2
    crest_target = 8.5
    width_high = 1.2
    vintage_mode = "Solid"
    saturation = 2.5
    mono_cutoff = 100

class HybridTrapProfile(BaseGenreProfile):
    name = "Hybrid Trap"
    description = "Metallic leads. Half-time."
    target_lufs = -6.5
    slope_target = -3.0
    crest_target = 7.5
    width_high = 1.25
    vintage_mode = "Solid"
    saturation = 2.0
    mono_cutoff = 130

class WaveProfile(BaseGenreProfile):
    name = "Wave"
    description = "Huge stereo width. Reverb washed."
    target_lufs = -9.0
    slope_target = -3.8
    crest_target = 10.0
    width_high = 1.6
    vintage_mode = "Tape"
    saturation = 1.0
    mono_cutoff = 120

class FutureBassProfile(BaseGenreProfile):
    name = "Future Bass"
    description = "LFO Chords. Musical pumping."
    target_lufs = -8.0
    slope_target = -3.5
    crest_target = 9.0
    width_high = 1.4
    vintage_mode = "Tape"
    saturation = 1.5
    mono_cutoff = 130

class MidTempoBassProfile(BaseGenreProfile):
    name = "Mid-Tempo Bass"
    description = "Gritty, industrial 100bpm."
    target_lufs = -7.5
    slope_target = -3.2
    crest_target = 8.0
    width_high = 1.2
    vintage_mode = "Solid"
    saturation = 2.5
    mono_cutoff = 140

class GlitchHopProfile(BaseGenreProfile):
    name = "Glitch Hop"
    description = "Funky, swing preservation."
    target_lufs = -8.5
    slope_target = -3.5
    crest_target = 9.5
    width_high = 1.2
    vintage_mode = "Tube"
    saturation = 1.0
    mono_cutoff = 120

class UKGarageProfile(BaseGenreProfile):
    name = "UK Garage"
    description = "Shuffle beats. Clean sub."
    target_lufs = -8.0
    slope_target = -3.5
    crest_target = 9.0
    width_high = 1.15
    vintage_mode = "Tape"
    saturation = 1.0
    mono_cutoff = 120
