# nova\_shops

NOVA Framework shop system. Provides clothing stores, barber shops, tattoo studios, and general stores (24/7, tools, weapons).

## Features

* **General Stores** — 24/7 convenience stores, tool shops, weapon shops
* **Clothing Stores** — Full outfit editor (tops, pants, shoes, hats, glasses, etc.)
* **Barber Shops** — Hair, beard, makeup, and more
* **Tattoo Studios** — Apply tattoos to various body zones
* **Multiple Locations** — Pre-configured locations across the map
* **Blips** — Map markers for all shop types
* **Pricing** — Configurable prices for all items and services

## Configuration

Edit `config.lua`:

```lua
ShopConfig = {
    InteractDistance = 1.5,

    Prices = {
        Clothing = 100,        -- Base price for clothing items
        Barber = 50,           -- Base price for barber services
        Tattoo = 200,          -- Base price per tattoo
    },

    Stores = {
        General = {
            { 
                label = '24/7 Innocence Blvd',
                coords = vector3(25.7, -1347.3, 29.5),
                items = {
                    { name = 'bread', label = 'Pão', price = 10 },
                    { name = 'water', label = 'Água', price = 5 },
                    -- More items...
                },
            },
            -- More stores...
        },

        Clothing = {
            { label = 'Suburban', coords = vector3(127.0, -223.0, 54.6) },
            { label = 'Ponsonbys', coords = vector3(-708.7, -152.2, 37.4) },
            -- More locations...
        },

        Barber = {
            { label = 'Barbeiro Downtown', coords = vector3(-814.3, -183.8, 37.6) },
            -- More locations...
        },

        Tattoo = {
            { label = 'Tattoo Chumash', coords = vector3(-3169.0, 1075.0, 20.8) },
            -- More locations...
        },
    },

    ClothingCategories = {
        { id = 'tops', label = 'Tops', component = 11 },
        { id = 'undershirt', label = 'Undershirt', component = 8 },
        { id = 'pants', label = 'Calças', component = 4 },
        { id = 'shoes', label = 'Sapatos', component = 6 },
        { id = 'hats', label = 'Chapéus', prop = 0 },
        { id = 'glasses', label = 'Óculos', prop = 1 },
        -- More categories...
    },

    BarberCategories = {
        'hair', 'beard', 'eyebrows', 'makeup', 'blush', 'lipstick'
    },

    Tattoos = {
        torso = { ... },
        left_arm = { ... },
        right_arm = { ... },
        left_leg = { ... },
        right_leg = { ... },
        head = { ... },
    },
}
```

### Store Types

| Type     | Description                      | Payment          |
| -------- | -------------------------------- | ---------------- |
| General  | Buy items (food, tools, weapons) | Cash or bank     |
| Clothing | Change outfit components         | Fixed price      |
| Barber   | Change hair, beard, makeup       | Fixed price      |
| Tattoo   | Apply/remove tattoos             | Per tattoo price |

## How It Works

### General Stores

1. Approach a store marker/NPC
2. NUI opens with available items and prices
3. Select item and quantity
4. Money is deducted and item is added to inventory

### Clothing Stores

1. Approach clothing store
2. NUI opens with clothing categories
3. Browse items in real-time (preview on player model)
4. Confirm purchase — appearance is saved

### Barber Shops

1. Approach barber
2. NUI opens with hair/beard/makeup options
3. Preview changes live
4. Confirm — appearance is saved

### Tattoo Studios

1. Approach tattoo artist
2. Select body zone (torso, arms, legs, head)
3. Browse available tattoos
4. Confirm — tattoo is applied and saved

## Dependencies

* **nova\_core** — Player data, money, skin saving
* **nova\_inventory** — For general store item purchases

## Notes

* Clothing/barber/tattoo changes are persisted in the database
* General store items require `nova_inventory` to be loaded
* Weapon shops may have job restrictions (configure per store)
* All stores use `nova_core:RemovePlayerMoney` for payments
* The NUI displays prices and previews for all items
