Instruccion para recrear la misma base de datos del sistema:

Quiero que construyas exactamente la misma base de datos que usa este sistema Laravel, respetando nombres de tablas, columnas, tipos, relaciones y restricciones. La base tiene estas tablas:

1. roles
- id bigint unsigned primary key autoincrement
- name varchar unique
- created_at timestamp nullable
- updated_at timestamp nullable

2. users
- id bigint unsigned primary key autoincrement
- role_id bigint unsigned foreign key -> roles.id
- name varchar
- email varchar unique
- email_verified_at timestamp nullable
- password varchar
- remember_token varchar nullable
- created_at timestamp nullable
- updated_at timestamp nullable

3. brands
- id bigint unsigned primary key autoincrement
- name varchar unique
- created_at timestamp nullable
- updated_at timestamp nullable

4. categories
- id bigint unsigned primary key autoincrement
- name varchar unique
- aumento_bs decimal(10,2) default 0
- created_at timestamp nullable
- updated_at timestamp nullable

5. products
- id bigint unsigned primary key autoincrement
- brand_id bigint unsigned foreign key -> brands.id
- category_id bigint unsigned foreign key -> categories.id
- name varchar
- sku varchar nullable unique
- price_usd decimal(10,2) default 0
- description text
- image_path varchar nullable
- price decimal(10,2) default 0
- is_active boolean default true
- created_at timestamp nullable
- updated_at timestamp nullable

6. exchange_rates
- id bigint unsigned primary key autoincrement
- base_currency varchar(3)
- quote_currency varchar(3)
- rate decimal(12,6)
- effective_at timestamp
- created_at timestamp nullable
- updated_at timestamp nullable
- unique compuesto: base_currency + quote_currency + effective_at

7. sales
- id bigint unsigned primary key autoincrement
- user_id bigint unsigned nullable foreign key -> users.id
- total_usd decimal(10,2) default 0
- total_bs decimal(12,2) default 0
- created_at timestamp nullable
- updated_at timestamp nullable

8. sale_items
- id bigint unsigned primary key autoincrement
- sale_id bigint unsigned foreign key -> sales.id con cascade on delete
- product_id bigint unsigned nullable foreign key -> products.id
- sku varchar
- product_name varchar
- brand_name varchar
- category_name varchar
- price_usd decimal(10,2)
- price_bs decimal(12,2)
- image_path varchar nullable
- created_at timestamp nullable
- updated_at timestamp nullable

Tambien incluye las tablas base de Laravel:

9. password_reset_tokens
- email varchar primary key
- token varchar
- created_at timestamp nullable

10. sessions
- id varchar primary key
- user_id bigint unsigned nullable index
- ip_address varchar(45) nullable
- user_agent text nullable
- payload longtext
- last_activity integer index

11. cache
- key varchar primary key
- value mediumtext
- expiration integer

12. cache_locks
- key varchar primary key
- owner varchar
- expiration integer

13. jobs
- id bigint unsigned primary key autoincrement
- queue varchar index
- payload longtext
- attempts tinyint unsigned
- reserved_at integer nullable
- available_at integer
- created_at integer

14. job_batches
- id varchar primary key
- name varchar
- total_jobs integer
- pending_jobs integer
- failed_jobs integer
- failed_job_ids longtext
- options mediumtext nullable
- cancelled_at integer nullable
- created_at integer
- finished_at integer nullable

15. failed_jobs
- id bigint unsigned primary key autoincrement
- uuid varchar unique
- connection text
- queue text
- payload longtext
- exception longtext
- failed_at timestamp default current_timestamp

Relaciones Eloquent esperadas:
- Role hasMany Users
- User belongsTo Role
- Brand hasMany Products
- Category hasMany Products
- Product belongsTo Brand
- Product belongsTo Category
- Sale hasMany SaleItems

Quiero que generes esta base de datos igual, sin cambiar nombres, sin renombrar campos y sin simplificar estructura. Si el stack nuevo usa ORM o migraciones, crea las migraciones y modelos equivalentes manteniendo la misma logica relacional.
