@host = http://localhost:8080
@tenantCode = 2s

# NOTE:
# - tenant_public endpoints do NOT require tenant membership.
# - Auth is optional: provide a token to get accurate has_access for paid contents.
@token = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoyLCJpc3MiOiJ2MiIsImV4cCI6MTc2NjYzMzAyMSwibmJmIjoxNzY2MDI4MjExfQ.RjLVil6EnbPi4LMPyVBzR2vFaeXelypk5fKInsAzqc8

### Tenant Public - Contents list (published + public), guest
GET {{ host }}/t/{{ tenantCode }}/v1/public/contents?page=1&limit=10
Content-Type: application/json

### Tenant Public - Contents list (published + public), optional auth
GET {{ host }}/t/{{ tenantCode }}/v1/public/contents?page=1&limit=10
Content-Type: application/json
Authorization: Bearer {{ token }}

### Tenant Public - Content detail (published + public), guest
@contentID = 1
GET {{ host }}/t/{{ tenantCode }}/v1/public/contents/{{ contentID }}
Content-Type: application/json

### Tenant Public - Preview assets (role=preview), guest
GET {{ host }}/t/{{ tenantCode }}/v1/public/contents/{{ contentID }}/preview
Content-Type: application/json

### Tenant Public - Media play (token-based; no auth header needed)
# Copy a `play_url` from preview/assets response and paste it here (or set @playToken).
@playToken = paste_play_token_here
GET {{ host }}/t/{{ tenantCode }}/v1/media/play?token={{ playToken }}

### Tenant Public - Main assets (role=main), guest
# Rule confirmed: public + price=0 => guest can access main assets.
GET {{ host }}/t/{{ tenantCode }}/v1/public/contents/{{ contentID }}/assets
Content-Type: application/json

### Tenant Public - Main assets (role=main), optional auth (paid content requires purchase/owner)
GET {{ host }}/t/{{ tenantCode }}/v1/public/contents/{{ contentID }}/assets
Content-Type: application/json
Authorization: Bearer {{ token }}
