# Fix Public Page Configuration

## Objective

Ensure that "General Settings" in the Dashboard (Page Title, Subtitle, Phone, Primary Color) are correctly reflected in the Public Booking Page (`CaptainBooking`).

## Context

The user reported that changing settings in the dashboard had no effect on the public page. The public page was using hardcoded values.

## Steps Taken

1.  **Backend**:

    - Identified that `phone_number` column was missing in `captain_configurations` table.
    - Created migration `AddPhoneNumberToCaptainConfigurations`.
    - Updated `Api::V1::Accounts::Captain::ConfigurationsController` to permit `phone_number` param.
    - Verified `Public::Api::V1::Captain::MasterDataController` returns the `captain_configuration` data.

2.  **Frontend (`App.vue`)**:

    - Updated `fetchMasterData` to consume `app_config` from the API response.
    - Made `appConfig` reactive to the fetched data (`title`, `subtitle`, `phone_number`, `primary_color`, `secondary_color`).
    - Added dynamic background gradient using `primary_color` and `secondary_color`.
    - Added "Suporte: [Phone]" display in the header/subtitle area if a phone number is set.

3.  **Backend Fix (Part 2)**:
    - Addressed `PG::UndefinedTable` error by explicitly setting `self.table_name = 'captain_configurations'` in `Captain::Configuration` model.
    - Addressed `ActionController::ParameterMissing` by updating frontend payload structure.

## Files Changed

- `db/migrate/20260114101014_add_phone_number_to_captain_configurations.rb` (New)
- `enterprise/app/controllers/api/v1/accounts/captain/configurations_controller.rb`
- `enterprise/app/models/captain/configuration.rb` (Added table_name)
- `app/javascript/captain_booking/App.vue`
- `app/javascript/dashboard/routes/dashboard/captain/configurations/Index.vue`

## Validation

- Dashboard UI (`configurations/Index.vue`) already supported sending `phone_number`.
- `App.vue` now dynamically updates its UI based on the API response.
