# Modul RAP (Recruitment Affiliate Program)

## Syarat

- RAP adalah bagian dari fitur **marketing** per kampus (`kampus_fitur`: `fitur = marketing`, `is_enabled = true`).
- Tanpa marketing aktif: tidak ada menu RAP, tidak ada approval WD, endpoint memakai middleware + policy.

## Template form (file global)

- Path default: `base_path('templates/RAP')` — override lewat env `RAP_TEMPLATES_PATH`.
- Letakkan PDF/DOCX master di folder tersebut. Unduhan daftar & file lewat route marketing (auth + `marketing.campus`).

## Upload afiliasi

- Disk: `config('rap.upload_disk')` (default `local`), direktori `config('rap.upload_directory')` di bawah `storage/app/`.

## Basis data

- `rap_affiliates`: master afiliasi / pengajuan (kolom `kampus_id` integer, tanpa FK ke `kampus` — selaras legacy).
- `mahasiswa.rap_affiliate_id`: opsional, hanya ke RAP berstatus **approved** dan `kampus_id` sama (validasi di `MahasiswaMarketingStoreService`).
- `rap_komisi`, `rap_bonus`: kerangka untuk bonus / komisi / pencairan bertahap (implementasi aturan lanjutan).

## Route utama

- Marketing: prefix `/marketing/rap`, nama `marketing.rap.*`.
- Wakil direktur: prefix `/wakil-direktur/rap`, nama `wakil-direktur.rap.*`, middleware `rap.marketing.campus`.
