테이블
테이블 현황을 조회하고, 독립운영 오퍼레이터는 자기 전용 테이블을 만들어 설정합니다.
- 공용 테이블: 본사가 운영하며 여러 오퍼레이터의 플레이어가 함께 앉습니다. 조회만 할 수 있고 설정은 바꿀 수 없습니다.
- 전용 테이블: 한 오퍼레이터가 만든 테이블로, 그 오퍼레이터의 플레이어만 로비에서 보고 앉을 수 있습니다. 다른 오퍼레이터에게는 보이지 않습니다. 만들기는
independent(독립운영) 오퍼레이터만 할 수 있습니다(운영 방식).
GET /tables 를 뺀 나머지는 관리 화면용입니다.
GET /tables
GET {API_BASE}/operator/v1/tables?game_code=live_holdem이 오퍼레이터가 볼 수 있는 운영 중 테이블(공용 + 자기 전용)과, 전용 테이블 만들기에 쓰는 기본 틀 · 수수료 기본값을 줍니다.
사이트에 테이블을 보여 줄 때
목록에는 이 오퍼레이터에 켜지지 않은 게임의 테이블, 사용 통화가 아닌 테이블, 사이트 베팅 한도 밖의 테이블도 함께 옵니다. 플레이어에게 보여 줄 때는 offered: true 인 테이블만 쓰세요. offered: false 인 테이블은 POST /launch 로 보내도 게임 화면에서 입장이 거절됩니다.
offered 는 게임 로비 출력(hide_menu · hide_tables) 설정은 반영하지 않습니다. 사이트 화면에서도 같은 게임을 숨기려면 GET /games 의 lobby 값을 함께 보세요.
쿼리
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
game_code | string | 이 게임의 테이블만. 비우면 전체 |
응답
200 OK
{
"tables": [
{
"table_id": "tbl_019a0f3c8e1f7a2b9c4d5e6f7a8b9c0d",
"game_code": "live_holdem",
"name": "Live Hold'em 25/50",
"names": { "ko": "라이브 홀덤 25/50", "en": "Live Hold'em 25/50" },
"currency": "PHP",
"limits": { "sb": 2500, "bb": 5000, "ante": 0, "min_buy_in": 200000, "max_buy_in": 1000000 },
"seats": { "max": 7, "taken": 3 },
"players": 3,
"status": "open",
"snapshot_url": "https://{API_HOST}/dealer/v1/snapshots/tbl_019a0f3c8e1f7a2b9c4d5e6f7a8b9c0d",
"dedicated": false,
"offered": true,
"clonable": true,
"studio": true,
"sort_order": 5,
"rake_kind": "pct_cap",
"rake_bp": 500,
"rake_cap": 50000,
"timers": [ { "key": "action_ms", "ms": 15000, "default_ms": 15000 } ],
"rake_rule": { "no_flop_no_drop": true, "rake_floor": false }
},
{
"table_id": "tbl_019a1b2c3d4e7f50a1b2c3d4e5f60718",
"game_code": "live_holdem",
"name": "ACME VIP 50/100",
"names": { "ko": "ACME VIP 50/100", "en": "ACME VIP 50/100" },
"currency": "PHP",
"limits": { "sb": 5000, "bb": 10000, "ante": 0, "min_buy_in": 400000, "max_buy_in": 2000000 },
"seats": { "max": 7, "taken": 0 },
"players": 0,
"status": "open",
"private": { "state": "standby", "start": 1792371600000, "end": 1792375200000 },
"dedicated": true,
"offered": true,
"clonable": true,
"studio": false,
"sort_order": 0,
"settings": {
"PHP": { "limits": { "sb": 5000, "bb": 10000, "ante": 0, "min_buy_in": 400000, "max_buy_in": 2000000 }, "rake_bp": 500, "rake_cap": 50000 },
"USD": { "limits": { "sb": 100, "bb": 200, "ante": 0, "min_buy_in": 8000, "max_buy_in": 40000 }, "rake_bp": 500, "rake_cap": 1000 },
"KRW": { "limits": { "sb": 1000, "bb": 2000, "ante": 0, "min_buy_in": 80000, "max_buy_in": 400000 }, "rake_bp": 500, "rake_cap": 10000 }
},
"rake_kind": "pct_cap",
"rake_bp": 500,
"rake_cap": 50000,
"live": { "dealing": "auto", "paused": false },
"timers": [ { "key": "action_ms", "ms": 20000, "default_ms": 15000 } ],
"rake_rule": { "no_flop_no_drop": true, "rake_floor": true },
"card_design": { "back": "rlive", "back_color": "red" }
}
],
"can_create": true,
"templates": [
{
"game_code": "live_holdem",
"allowed": true,
"available": true,
"currency": "PHP",
"limits": { "sb": 2500, "bb": 5000, "ante": 0, "min_buy_in": 200000, "max_buy_in": 1000000 },
"seats": { "max": 7, "taken": 0 },
"studio": true,
"settings": { "PHP": { "limits": { "sb": 2500, "bb": 5000, "ante": 0, "min_buy_in": 200000, "max_buy_in": 1000000 }, "rake_bp": 500, "rake_cap": 50000 } },
"rake_kind": "pct_cap",
"rake_bp": 500,
"rake_cap": 50000,
"rake_rule": { "no_flop_no_drop": true, "rake_floor": false }
},
{ "game_code": "live_baccarat", "allowed": false, "available": true, "currency": "PHP", "limits": { "min_bet": 10000, "max_bet": 5000000, "tie_max": 500000 }, "studio": true }
],
"rake_defaults": { "rake_bp": 500, "caps": { "PHP": 50000 }, "no_flop_no_drop": true, "rake_floor": true }
}tables[] — 모든 테이블에 있는 필드
| 필드 | 타입 | 설명 |
|---|---|---|
table_id | string | 테이블 ID(tbl_ + 32자리 16진수). POST /launch 의 table_id 로 씁니다. |
game_code | string | 게임 코드 |
name | string | 테이블 이름(원본) |
names | object | 언어별 이름 {ko, en, zh, ja, th, vi}. 화면 언어 이름이 없으면 name 을 쓰세요. |
currency | string | 테이블 운영 통화. 이 통화의 플레이어만 앉습니다. |
limits | object | 테이블 한도(최소 단위 정수). 키는 게임마다 다릅니다(예: 홀덤 sb bb ante min_buy_in max_buy_in, 바카라 min_bet max_bet tie_max). |
seats | object | 좌석 {max, taken}. 좌석이 있는 게임만 있고, 좌석이 없는 뱅크형 게임은 필드가 없습니다. |
players | integer | 지금 참여 인원(좌석 게임은 착석 수, 뱅크형은 테이블 접속자 수) |
status | string | open · maintenance |
private | object | 프라이빗 예약이 걸린 테이블만 있습니다. state: standby(예약 시작 5분 전부터 — 비밀번호로만 입장) · private(진행 중), start · end: 예약 시각(Unix 밀리초). 프라이빗 테이블 참고 |
snapshot_url | string | 딜러 영상이 있는 라이브 테이블만 있습니다. 아래 영상 스냅숏 참고 |
dedicated | boolean | 이 오퍼레이터의 전용 테이블인지 |
offered | boolean | 이 사이트 플레이어에게 보이고 입장할 수 있는지(켜진 게임 · 사용 통화 · 사이트 베팅 한도 안) |
clonable | boolean | 이 테이블을 원본으로 전용 테이블을 만들 수 있는지(POST /tables 의 from) |
studio | boolean | 딜러 스튜디오 테이블(영상 송출)인지. 복제하면 영상 없는 자동 딜링 테이블이 됩니다. |
sort_order | integer | 같은 게임 안의 로비 정렬 순서(작을수록 앞) |
rake_kind | string | 레이크 모양. pct_cap(홀덤 · 오마하 · 라이브 홀덤) · bp(스피드 홀덤 · 섯다 · 바둑이 · 맞고 · 고스톱 · 통잇). 레이크가 없는 게임(바카라 · 블랙잭 · 레드독)은 필드가 없습니다. |
rake_bp | integer | 운영 통화의 레이크 비율(bp, 500 = 5%). 레이크 있는 게임만 |
rake_cap | integer | 운영 통화의 판당 최고 수수료(최소 단위, 0 = 상한 없음). 레이크 있는 게임만 |
timers | array | 고칠 수 있는 배팅 · 차례 시간 [{key, ms, default_ms}]. PUT /tables/{table_id}/timers 참고 |
rake_rule | object | 레이크 규칙 {no_flop_no_drop?, rake_floor}. 레이크 있는 게임만. no_flop_no_drop 은 홀덤 계열만 있습니다. |
tables[] — 전용 테이블에만 있는 필드
| 필드 | 타입 | 설명 |
|---|---|---|
settings | object | 통화별 한도 · 레이크 {통화: {limits, rake_bp?, rake_cap?}}. 운영 통화 외의 통화는 운영 통화 값을 환산해 채워 둡니다. PUT /tables/{table_id}/settings 로 고칩니다. |
live | object | 딜링 방식 · 일시정지 {dealing: "auto" | "manual", paused}. 라이브 홀덤 · 스피드 홀덤만 |
card_design | object | 테이블에서 따로 고른 카드 디자인 {face?, back?, back_color?}. 빈 칸은 오퍼레이터 기본값을 따릅니다. 라이브 홀덤 · 스피드 홀덤만 |
최상위 필드
| 필드 | 타입 | 설명 |
|---|---|---|
can_create | boolean | 전용 테이블을 만들 수 있는 운영 방식인지(independent 면 true) |
templates | array | 켜진 게임마다 하나씩, 테이블 만들기 기본 틀. 아래 표 참고 |
rake_defaults | object | 이 오퍼레이터의 수수료 기본값 {rake_bp?, caps?, no_flop_no_drop?, rake_floor?}. 새 테이블의 레이크 처음 값입니다. 오퍼레이터 설정 참고 |
templates[]
| 필드 | 타입 | 설명 |
|---|---|---|
game_code | string | 게임 코드 |
allowed | boolean | 이 게임으로 테이블을 만들 수 있는지(독립운영 + 본사 허용) |
available | boolean | 기본 틀이 있는지. false 면 아래 필드가 없고 이 게임은 game_code 로 만들 수 없습니다. |
currency · limits · seats · studio · settings · rake_kind · rake_bp · rake_cap · rake_rule | 기본 틀의 값. 뜻은 tables[] 와 같습니다. limits 의 키가 POST /tables 에 보낼 한도 키입니다. |
영상 스냅숏
snapshot_url 은 라이브 테이블 딜러 영상의 최신 캡처 한 장(JPEG)입니다. 사이트 로비의 테이블 카드에 미리보기로 쓸 수 있습니다.
GET {API_BASE}/dealer/v1/snapshots/{table_id}- 인증 없이 열리는 공개 주소입니다. 다른 오리진에서
<img>로 바로 넣을 수 있습니다. - 영상을 송출하는 동안 약 1분마다 바뀝니다. 같은 주소는 30초 캐시되므로, 화면에서는 1분마다
?t=<시각>처럼 쿼리를 바꿔 다시 받으세요. - 아직 캡처가 없거나 마지막 캡처가 5분보다 오래되면(송출 중지)
404입니다. 이때는 사이트 자체 그림으로 대신하세요. - 영상이 없는 자동 딜링 테이블에는
snapshot_url이 없습니다.
오류
인증 · 공통 오류만 있습니다(오류 코드).
전용 테이블 공통
아래 엔드포인트(POST /tables 제외)는 경로의 table_id 가 이 오퍼레이터의 열린 전용 테이블이어야 합니다.
| HTTP | error.code | 원인 |
|---|---|---|
| 404 | TABLE_NOT_FOUND | 테이블이 없거나, 닫혔거나, 다른 오퍼레이터의 전용 테이블 |
| 403 | TABLE_NOT_OWNED | 공용 테이블(본사가 관리 — 바꿀 수 없음) |
| 400 | INVALID_REQUEST | JSON 오류 또는 필드 오류(details.fields) |
| 400 | INVALID_CONFIG | 게임 엔진이 이 설정을 받지 않음(message 에 사유) |
- 한도 · 레이크 · 타이머 · 레이크 규칙 변경은 진행 중인 판은 옛 값으로 끝나고 다음 판부터 적용됩니다.
- 금액은 모두 최소 단위 정수이고, 금액 1단위(
10^exponent,GET /currencies)의 배수만 받습니다. - 모든 변경은 변경 이력에 남고, 응답 헤더
X-Audit-Id로 되돌릴 수 있습니다.
POST /tables
POST {API_BASE}/operator/v1/tables전용 테이블을 만듭니다. 독립운영만 쓸 수 있고, 본사가 이 오퍼레이터에 테이블 만들기를 허용한 게임만 됩니다(GET /games 의 table_create, GET /tables 의 templates[].allowed).
원본을 둘 중 하나로 고릅니다.
from: 볼 수 있는 테이블(공용 또는 자기 전용,clonable: true)을 복제game_code: 그 게임의 기본 틀(templates[],available: true)로 만들기
새 테이블은 원본의 세부 설정(타이머 등)을 따르고, 이름 · 통화 · 한도 · 좌석 수 · 정렬 · 레이크만 바꿉니다. 딜러 스튜디오 테이블(studio: true)을 원본으로 쓰면 영상 없는 자동 딜링 테이블로 만들어집니다.
요청 필드
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
from | string | 둘 중 하나 | 복제할 테이블 ID(tbl_…) |
game_code | string | 둘 중 하나 | 기본 틀로 만들 게임 코드(from 이 있으면 무시) |
names | object | 필수 | 언어별 이름 {ko, en, zh, ja, th, vi}. en 또는 ko 중 하나는 있어야 하고, 각 60자 이하. 비운 언어는 영어 이름(없으면 한국어 이름)으로 채웁니다. |
currency | string | 필수 | 운영 통화. 오퍼레이터 사용 통화 중 하나 |
limits | object | 필수 | 한도 {키: 금액}. 아래 한도 규칙 |
max_seats | integer | 좌석 수. 원본에 좌석이 있는 게임만. 게임이 받지 않는 값이면 INVALID_CONFIG | |
sort_order | integer | 로비 정렬 순서. 비우면 원본 값 | |
rake_bp | integer | 레이크 비율(bp, 0~2000 = 0~20%). 레이크 있는 게임만 | |
rake_cap | integer | 판당 최고 수수료(0 이상, 0 = 상한 없음). 레이크 있는 게임만 | |
no_flop_no_drop | boolean | 플랍 전에 끝난 핸드는 레이크를 떼지 않음. 홀덤 계열(홀덤 · 오마하 · 라이브 홀덤)만 | |
rake_floor | boolean | 한 판 레이크의 1단위 미만을 버림(₱142.50 → ₱142). 레이크 있는 게임만 |
- 레이크 칸을 비우면 수수료 기본값(
rake_defaults)을, 그것도 없으면 원본 테이블 값을 따릅니다. - 레이크가 없는 게임(바카라 · 블랙잭 · 레드독)에 레이크 칸을 보내면 그 칸이 오류입니다.
- 운영 통화가 아닌 다른 통화의 한도 · 레이크는 환산해 채워 두며, 만든 뒤
PUT /tables/{table_id}/settings로 고칩니다.
한도 규칙
limits 는 POST /tables 와 PUT /tables/{table_id}/settings 에서 같은 규칙으로 검사합니다.
- 원본 테이블(또는 기본 틀)
limits의 키를 모두, 그 키만 보냅니다. 값이0인 키(예: 홀덤ante)도 빼면 안 됩니다. - 값은 0 이상이고, 원본 값이 0 보다 큰 키는 0 보다 커야 합니다.
- 금액 1단위의 배수여야 합니다.
min_X ≤ max_X(예:min_buy_in ≤ max_buy_in),sb ≤ bb여야 합니다.- 테이블의 베팅 크기가 그 통화의 사이트 베팅 한도 안이어야 합니다(밖이면 만들어도 자기 플레이어에게 보이지 않으므로 거절합니다).
잘못된 칸은 details.fields 에 limits.<키> 로 옵니다.
요청 예시
{
"from": "tbl_019a0f3c8e1f7a2b9c4d5e6f7a8b9c0d",
"names": { "en": "ACME VIP 50/100", "ko": "ACME VIP 50/100" },
"currency": "PHP",
"limits": { "sb": 5000, "bb": 10000, "ante": 0, "min_buy_in": 400000, "max_buy_in": 2000000 },
"sort_order": 0,
"rake_bp": 500,
"rake_cap": 50000,
"no_flop_no_drop": true,
"rake_floor": true
}응답
201 Created
{ "table_id": "tbl_019a1b2c3d4e7f50a1b2c3d4e5f60718" }만든 테이블은 바로 운영에 올라가 GET /tables 와 플레이어 로비에 나타납니다.
오류
| HTTP | error.code | 원인 |
|---|---|---|
| 403 | TABLE_CREATE_FORBIDDEN | prepaid 오퍼레이터이거나, 테이블 만들기가 허용되지 않은 게임 |
| 404 | TABLE_NOT_FOUND | from 테이블이 없거나, 닫혔거나, 다른 오퍼레이터의 전용 테이블 |
| 404 | GAME_NOT_FOUND | 게임이 이 오퍼레이터에 켜져 있지 않음(from · game_code 를 모두 비운 경우 포함) |
| 404 | TEMPLATE_NOT_FOUND | 그 게임의 기본 틀이 없음(templates[].available: false) |
| 400 | TEMPLATE_NOT_ALLOWED | 원본 한도가 복제할 수 없는 모양 |
| 400 | INVALID_REQUEST | details.fields: names.<언어> · currency · limits.<키> · max_seats · rake_bp · rake_cap · no_flop_no_drop · rake_floor |
| 400 | INVALID_CONFIG | 게임 엔진이 이 설정을 받지 않음(좌석 수 등) |
| 500 | TABLE_OPEN_FAILED | 저장 뒤 테이블을 띄우지 못함(만들어지지 않은 것으로 처리됩니다) |
| 503 | UNAVAILABLE | 테이블 만들기를 지금 쓸 수 없음 |
PATCH /tables/{table_id}
PATCH {API_BASE}/operator/v1/tables/{table_id}전용 테이블의 이름과 정렬 순서를 바꿉니다. 한도 · 레이크는 PUT …/settings, 운영 통화는 PUT …/currency 로 바꿉니다.
요청 필드
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
names | object | 필수 | 언어별 이름. POST /tables 의 names 와 같은 규칙. 보낸 값으로 전체 교체합니다. |
sort_order | integer | 로비 정렬 순서. 비우면 그대로 |
{ "names": { "en": "ACME VIP 100/200" }, "sort_order": 1 }응답
204 No Content. 로비 이름은 바로 바뀝니다.
오류
전용 테이블 공통 오류. 필드 오류는 names.<언어>(60자 초과, 또는 en · ko 모두 비면 names.en).
POST /tables/{table_id}/close
POST {API_BASE}/operator/v1/tables/{table_id}/close전용 테이블을 닫습니다. 본문은 필요 없습니다(빈 본문 또는 {} 로 서명).
- 앉아 있던 플레이어는 진행 중인 판이 끝나면 캐시아웃됩니다(뱅크형 게임에서 정산되지 않은 판은 무효 · 환불). 돈은 평소처럼 지갑 콜백으로 돌아갑니다.
- 닫은 테이블은 목록에서 사라지고 Operator API 로 다시 열 수 없습니다. 다시 쓰려면 새로 만드세요.
응답
204 No Content
오류
전용 테이블 공통 오류.
PUT /tables/{table_id}/settings
PUT {API_BASE}/operator/v1/tables/{table_id}/settings전용 테이블의 통화 하나의 한도 · 레이크를 저장합니다. 테이블은 운영 통화 하나로 돌지만, 통화마다 설정을 따로 적어 두었다가 운영 통화를 바꿀 때 그 통화의 값을 씁니다.
currency가 운영 통화면 운영 중인 테이블에 바로 알려 다음 판부터 적용합니다.- 운영 통화가 아니면 저장만 합니다.
요청 필드
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
currency | string | 필수 | 오퍼레이터 사용 통화 중 하나 |
limits | object | 필수 | 한도. 테이블 지금 limits 와 같은 키 — 한도 규칙 |
rake_bp | integer | 레이크 있는 게임은 필수 | 레이크 비율(bp, 0~2000) |
rake_cap | integer | 판당 최고 수수료(0 이상, 비우거나 0 = 상한 없음) |
레이크가 없는 게임은 rake_bp · rake_cap 을 무시합니다.
{
"currency": "PHP",
"limits": { "sb": 5000, "bb": 10000, "ante": 0, "min_buy_in": 400000, "max_buy_in": 2000000 },
"rake_bp": 450,
"rake_cap": 40000
}응답
200 OK
{
"table_id": "tbl_019a1b2c3d4e7f50a1b2c3d4e5f60718",
"currency": "PHP",
"settings": {
"PHP": { "limits": { "sb": 5000, "bb": 10000, "ante": 0, "min_buy_in": 400000, "max_buy_in": 2000000 }, "rake_bp": 450, "rake_cap": 40000 },
"USD": { "limits": { "sb": 100, "bb": 200, "ante": 0, "min_buy_in": 8000, "max_buy_in": 40000 }, "rake_bp": 500, "rake_cap": 1000 },
"KRW": { "limits": { "sb": 1000, "bb": 2000, "ante": 0, "min_buy_in": 80000, "max_buy_in": 400000 }, "rake_bp": 500, "rake_cap": 10000 }
}
}| 필드 | 타입 | 설명 |
|---|---|---|
table_id | string | 테이블 ID |
currency | string | 테이블 운영 통화(요청한 통화가 아님) |
settings | object | 저장 뒤 전체 통화별 설정 |
오류
전용 테이블 공통 오류. 필드 오류: currency · limits.<키>(사이트 베팅 한도 밖 포함) · rake_bp · rake_cap.
PUT /tables/{table_id}/currency
PUT {API_BASE}/operator/v1/tables/{table_id}/currency전용 테이블의 운영 통화를 바꿉니다. 그 통화의 settings 값이 한도 · 레이크가 되고 테이블을 다시 띄웁니다.
- 아무도 앉아 있지 않을 때만 바꿀 수 있습니다(앉은 사람이 있으면
409 TABLE_BUSY). - 지금 운영 통화와 같은 값을 보내면 아무것도 바꾸지 않고
200입니다.
요청 필드
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
currency | string | 필수 | 새 운영 통화. 오퍼레이터 사용 통화 중 하나 |
{ "currency": "USD" }응답
200 OK — { "table_id", "currency"(새 운영 통화), "settings" } (PUT …/settings 응답과 같은 모양)
오류
| HTTP | error.code | 원인 |
|---|---|---|
| 409 | TABLE_BUSY | 앉아 있는 플레이어가 있음 |
| 400 | INVALID_REQUEST | details.fields: currency |
| 400 | INVALID_CONFIG | 그 통화 설정을 게임 엔진이 받지 않음 |
| 500 | TABLE_OPEN_FAILED | 테이블을 다시 띄우지 못함 |
그 밖에 전용 테이블 공통 오류.
PUT /tables/{table_id}/live
PUT {API_BASE}/operator/v1/tables/{table_id}/live전용 라이브 홀덤 · 스피드 홀덤 테이블의 딜링 방식과 일시정지를 바꿉니다. 보낸 값만 바꿉니다.
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
dealing | string | auto(자동 딜링 — 영상 · 딜러 없이 서버가 카드를 냄) · manual(딜러가 카드를 스캔하고 영상을 송출) | |
paused | boolean | true 면 새 판을 시작하지 않음(진행 중인 판은 끝까지) |
- 일시정지는 바로, 딜링 방식은 진행 중인 판이 끝난 뒤 적용됩니다.
manual로 바꾸면 그 테이블은 딜러툴이 영상을 송출하고 카드를 스캔하는 테이블이 됩니다. 딜러 · 딜러툴 준비는 딜러를 보세요.
{ "dealing": "auto", "paused": true }응답
200 OK
{ "table_id": "tbl_019a1b2c3d4e7f50a1b2c3d4e5f60718", "dealing": "auto", "paused": true }오류
| HTTP | error.code | 원인 |
|---|---|---|
| 400 | UNSUPPORTED_GAME | 라이브 홀덤 · 스피드 홀덤이 아닌 테이블 |
| 400 | INVALID_REQUEST | details.fields: dealing(auto · manual 이 아님) |
그 밖에 전용 테이블 공통 오류.
PUT /tables/{table_id}/timers
PUT {API_BASE}/operator/v1/tables/{table_id}/timers전용 테이블의 배팅 · 차례 시간을 바꿉니다. 보낸 키만 바꿉니다.
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
timers | object | 필수 | {키: 밀리초}. 하나 이상. 값은 3000~300000(3~300초), 1000 의 배수 |
게임별 키(지금 값과 기본값은 GET /tables 의 timers 에 있습니다)
| 게임 | 키 |
|---|---|
| 홀덤 · 오마하 · 라이브 홀덤 | action_ms(차례 시간) |
| 스피드 홀덤 · 바카라 | bet_ms(배팅 시간) |
| 블랙잭 | bet_ms(배팅 시간), decision_ms(결정 시간) |
| 맞고 · 고스톱 | turn_ms |
| 섯다 | turn_ms, select_ms |
| 바둑이 | turn_ms, draw_ms |
| 통잇 | draw_ms, play_ms, fight_ms |
| 레드독 | bet_ms, raise_ms |
- 차례가 있는 게임은 다음 차례 · 배팅 창부터, 라운드 게임(스피드 홀덤 · 블랙잭 · 바카라)은 판 사이에(판 중이면 그 판이 끝난 뒤) 새 시간이 적용됩니다. 이미 돌고 있는 카운트다운은 그대로입니다.
{ "timers": { "action_ms": 20000 } }응답
200 OK
{
"table_id": "tbl_019a1b2c3d4e7f50a1b2c3d4e5f60718",
"timers": [ { "key": "action_ms", "ms": 20000, "default_ms": 15000 } ]
}오류
전용 테이블 공통 오류. 필드 오류: timers(비었음) · timers.<키>(이 게임에 없는 키, 범위 밖, 1000 의 배수 아님).
PUT /tables/{table_id}/rake-rule
PUT {API_BASE}/operator/v1/tables/{table_id}/rake-rule전용 테이블의 레이크 규칙을 바꿉니다. 레이크가 있는 게임만 됩니다. 보낸 값만 바꾸며, 하나 이상 보내야 합니다.
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
no_flop_no_drop | boolean | 플랍 전에 끝난 핸드는 레이크를 떼지 않음. 홀덤 계열(홀덤 · 오마하 · 라이브 홀덤)만 | |
rake_floor | boolean | 한 판 레이크의 금액 1단위 미만을 버림(₱142.50 → ₱142). 레이크 있는 모든 게임 |
{ "rake_floor": true }응답
200 OK
{
"table_id": "tbl_019a1b2c3d4e7f50a1b2c3d4e5f60718",
"rake_rule": { "no_flop_no_drop": true, "rake_floor": true }
}오류
전용 테이블 공통 오류. 필드 오류: rake_rule(레이크가 없는 게임, 또는 두 값을 모두 비움) · no_flop_no_drop(홀덤 계열이 아님).
PUT /tables/{table_id}/card-design
PUT {API_BASE}/operator/v1/tables/{table_id}/card-design전용 라이브 홀덤 · 스피드 홀덤 테이블의 카드 디자인을 따로 고릅니다. 화면 설정이라 게임 진행에는 영향이 없고, 플레이어가 다음에 테이블에 들어올 때 반영됩니다.
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
face | string | 앞면: texas · studio | |
back | string | 뒷면: texas · rlive | |
back_color | string | 뒷면 색: blue · red · black (색을 고를 수 있는 뒷면 rlive 에만 쓰입니다) |
- 요청은 전체 교체입니다. 비우거나 뺀 칸은 오퍼레이터 기본값(
GET /card-design) → 시스템 기본값 순으로 따릅니다. 모두 비우면 테이블 지정을 지웁니다. - 선택지와 각 디자인은 오퍼레이터 설정을 보세요.
{ "back": "rlive", "back_color": "red" }응답
200 OK
{
"table_id": "tbl_019a1b2c3d4e7f50a1b2c3d4e5f60718",
"card_design": { "back": "rlive", "back_color": "red" }
}오류
전용 테이블 공통 오류. 필드 오류: card_design(라이브 홀덤 · 스피드 홀덤이 아님) · face · back · back_color(선택지에 없는 값).