from .base import BaseGenreProfile

# --- 9. SYNTH & NU-DISCO ---

class NuDiscoProfile(BaseGenreProfile):
    name = "Nu-Disco"
    description = "Modern polish on 70s groove."
    target_lufs = -9.0
    slope_target = -3.5
    crest_target = 10.0
    width_high = 1.3
    vintage_mode = "Tape"
    saturation = 1.5
    mono_cutoff = 120

class SynthwaveProfile(BaseGenreProfile):
    name = "Synthwave"
    description = "80s nostalgia. Gated reverb."
    target_lufs = -8.5
    slope_target = -3.2
    crest_target = 9.5
    width_high = 1.4
    vintage_mode = "Tape"
    saturation = 2.0
    mono_cutoff = 110

class ItaloDiscoProfile(BaseGenreProfile):
    name = "Italo Disco"
    description = "Arpeggiated bass. Spacey."
    target_lufs = -9.5
    slope_target = -3.0
    crest_target = 10.0
    width_high = 1.25
    vintage_mode = "Tube"
    saturation = 1.5
    mono_cutoff = 120

# --- 10. EXPERIMENTAL & IDM ---

class IDMProfile(BaseGenreProfile):
    name = "IDM"
    description = "Intelligent Dance Music. Complex."
    target_lufs = -10.0
    slope_target = -3.8
    crest_target = 11.0
    width_high = 1.3
    vintage_mode = "Tape"
    saturation = 1.0
    mono_cutoff = 100

class AmbientProfile(BaseGenreProfile):
    name = "Ambient"
    description = "Texture focus. No beats."
    target_lufs = -14.0
    slope_target = -4.5
    crest_target = 12.0
    width_high = 1.8
    vintage_mode = "Tube"
    saturation = 0.5
    mono_cutoff = 80

# --- 11. MICRO-GENRES ---

class PhonkProfile(BaseGenreProfile):
    name = "Phonk"
    description = "Drift Phonk. Cowbells and distortion."
    target_lufs = -6.0
    slope_target = -3.0
    crest_target = 7.0
    width_high = 1.1
    vintage_mode = "Solid"
    saturation = 4.0
    mono_cutoff = 150

class JerseyClubProfile(BaseGenreProfile):
    name = "Jersey Club"
    description = "Triplet kick pattern. Bed squeaks."
    target_lufs = -7.0
    slope_target = -3.2
    crest_target = 8.0
    width_high = 1.2
    vintage_mode = "Solid"
    saturation = 1.5
    mono_cutoff = 130
