Grup dersleri API

Grup dersleri modülünün tüm işlemleri (12) ve veri modelleri (4): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.

Kontenjan, eğitmen, rezervasyon ve yoklamayla haftalık ders programı.

Modül kodu group_classes · 12 işlem · 4 veri modeli · 11 olay. Bir anahtar ya da token, arkasındaki kişinin bu modülde yapabildiğinden fazlasını asla yapamaz; satır düzeyindeki güvenlik uygulamadakiyle birebir aynıdır. Yetki kapsamları: group_classes (hepsi), group_classes:read (yalnız okuma) ya da group_classes:<yetenek>.

Kaynaklar

KaynakTabloListeleme ve okumaPOSTPATCHDELETE
group_class_joiningsgroup_class_joining/api/v1/group_class_joinings
group_class_schedulesgroup_class_schedule/api/v1/group_class_schedules
group_class_servicesgroup_class_service/api/v1/group_class_services
group_classesgroup_class/api/v1/group_classes

Listeler limit (en çok 200), cursor, order (ör. -created_at), fields ve q alır; diğer her sorgu parametresi bir sütun süzgecidir: ?status=paid, ?total[gte]=100, ?id[in]=a,b, ?x=null.

İşlemler

İşlemGereken izinNe yapar
group_classes.add_schedulegroup_classes:manageHaftalık saat ekle
group_classes.archive_classgroup_classes:manageDersi kaldır
group_classes.cancel_joininggroup_classes:writeDers rezervasyonunu iptal et
group_classes.cancel_sessiongroup_classes:manageTek seansı iptal et
group_classes.create_classgroup_classes:manageDers oluştur
group_classes.end_schedulegroup_classes:manageSeriyi bitir
group_classes.joingroup_classes:writeYer ayırt
group_classes.join_onlinegroup_classes:writeOnline derse yer ayır
group_classes.mark_attendancegroup_classes:writeYoklama al
group_classes.set_servicesgroup_classes:manageHizmetleri değiştir
group_classes.update_classgroup_classes:manageDersi düzenle
group_classes.update_schedulegroup_classes:manageHaftalık saati düzenle

group_classes.add_schedule

Haftalık saat ekle — Yeni bir seri başlatır: ders her hafta bu gün ve saatte yapılır.

Gereken izin group_classes:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/group_class_schedules/actions/add_schedule
API anahtarı ya da OAuth token · group_classes:manage
  • Asıl adres: POST /api/v1/actions/group_classes.add_schedule

Girdi

AlanTürZorunluAçıklama
groupClassIduuidevetDers · kimliği: group_class
weekdaynumberevetGün · en az 0 · en çok 6
startTimestringevetBaşlangıç · en çok 8
durationnumberevetSüre (dakika) · en az 1 · en çok 1440
instructorUserIduuidEğitmen
startsOndateİlk seans başlangıcı

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSınıf bulunmalı.
class_archivedKaldırılmış bir ders programa konamaz.
no_scheduleGün, saat ve süre düzgün biçimde olmalı.
schedule_existsDers o gün ve saatte zaten yapılıyor olmamalı.
service_not_offered_that_dayDersin hizmetleri o gün sunuluyor olmalı.
provider_cannot_performEğitmen dersteki her hizmeti vermeli.

Yayımladığı olaylar: group_classes.series_created

Neye yazar: group_class_schedule (insert) — Writes the series

curl -X POST https://app.getera.io/api/v1/group_class_schedules/actions/add_schedule \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"groupClassId":"GROUP_CLASS_ID","weekday":1,"startTime":"Starts","duration":1}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "group_classes.series_created"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.groupClassSchedules.addSchedule({
  groupClassId: "GROUP_CLASS_ID",
  weekday: 1,
  startTime: "Starts",
  duration: 1
})
era group_class_schedules add_schedule \
  --group-class-id "GROUP_CLASS_ID" \
  --weekday 1 \
  --start-time "Starts" \
  --duration 1
tools/call
{
  "name": "era__group_classes__add_schedule",
  "arguments": {
    "groupClassId": "GROUP_CLASS_ID",
    "weekday": 1,
    "startTime": "Starts",
    "duration": 1
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde group_classes:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, class_archived, no_schedule, schedule_exists, service_not_offered_that_day, provider_cannot_perform · 429 çok sık istek

group_classes.archive_class

Dersi kaldır — Rezervasyon almayı durdurur. Geçmiş kalır.

Gereken izin group_classes:manage · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/group_classes/{id}/actions/archive_class
API anahtarı ya da OAuth token · group_classes:manage
  • Asıl adres: POST /api/v1/actions/group_classes.archive_class

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Ders · kimliği: group_class

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSınıf bulunmalı.
class_archivedZaten kaldırılmış olmamalı.
has_upcoming_joiningsYaklaşan bir seansa kimse kayıtlı olmamalı.
no_workspaceSaati için çalışma alanı okunabilir olmalı.

Yayımladığı olaylar: group_classes.class_archived

Neye yazar: group_class (update) — Stamps archived_at; group_class_schedule (update) — Ends every running series today

curl -X POST https://app.getera.io/api/v1/group_classes/GROUP_CLASSE_ID/actions/archive_class \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "group_classes.class_archived"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.groupClasses.archiveClass("GROUP_CLASSE_ID")
era group_classes archive_class GROUP_CLASSE_ID
tools/call
{
  "name": "era__group_classes__archive_class",
  "arguments": {
    "id": "GROUP_CLASSE_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde group_classes:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, class_archived, has_upcoming_joinings, no_workspace · 429 çok sık istek

group_classes.cancel_joining

Ders rezervasyonunu iptal et — Yeri boşaltır. Neden zorunludur.

Gereken izin group_classes:write · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/group_class_joinings/{id}/actions/cancel_joining
API anahtarı ya da OAuth token · group_classes:write
  • Asıl adres: POST /api/v1/actions/group_classes.cancel_joining

Girdi

AlanTürZorunluAçıklama
joiningIduuidevetDoldurulduğu yer: adresteki {id} · Rezervasyon · kimliği: group_class_joining
reasonstringevetNeden · en çok 64

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
joining_not_foundRezervasyon bulunmalı.
already_cancelledZaten iptal edilmiş olmamalı.
already_finishedYoklama zaten kaydedilmiş olmamalı.
unknown_reasonNeden, çalışma alanının kullandığı nedenlerden biri olmalı.

Yayımladığı olaylar: group_classes.joining_cancelled

Neye yazar: group_class_joining (update) — Marks it cancelled and records why

curl -X POST https://app.getera.io/api/v1/group_class_joinings/GROUP_CLASS_JOINING_ID/actions/cancel_joining \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"reason":"Reason"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "group_classes.joining_cancelled"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.groupClassJoinings.cancelJoining("GROUP_CLASS_JOINING_ID", {
  reason: "Reason"
})
era group_class_joinings cancel_joining GROUP_CLASS_JOINING_ID \
  --reason "Reason"
tools/call
{
  "name": "era__group_classes__cancel_joining",
  "arguments": {
    "joiningId": "GROUP_CLASS_JOINING_ID",
    "reason": "Reason"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde group_classes:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 joining_not_found, already_cancelled, already_finished, unknown_reason · 429 çok sık istek

group_classes.cancel_session

Tek seansı iptal et — Bir tarihi seriden çıkarır ve o seansa kayıtlı herkesi iptal eder.

Gereken izin group_classes:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/group_class_joinings/actions/cancel_session
API anahtarı ya da OAuth token · group_classes:manage
  • Asıl adres: POST /api/v1/actions/group_classes.cancel_session

Girdi

AlanTürZorunluAçıklama
scheduleIduuidevetSeri · kimliği: group_class_schedule
sessionDatedateevetTarih
reasonstringevetNeden · en çok 64

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
schedule_not_foundSeri bulunmalı.
not_foundDersi bulunmalı.
unknown_reasonNeden, çalışma alanının kullandığı nedenlerden biri olmalı.
no_such_sessionDers o tarihte yapılıyor olmalı.
session_cancelledZaten iptal edilmiş olmamalı.
session_in_pastBaşlamış olmamalı.
no_workspaceSaati için çalışma alanı okunabilir olmalı.

Yayımladığı olaylar: group_classes.session_cancelled, group_classes.joining_cancelled

Neye yazar: group_class_session_cancellation (insert) — Records the cancelled date; group_class_joining (update) — Cancels everyone booked on it

curl -X POST https://app.getera.io/api/v1/group_class_joinings/actions/cancel_session \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"scheduleId":"GROUP_CLASS_SCHEDULE_ID","sessionDate":"2026-11-02","reason":"Reason"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "group_classes.session_cancelled",
    "group_classes.joining_cancelled"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.groupClassJoinings.cancelSession({
  scheduleId: "GROUP_CLASS_SCHEDULE_ID",
  sessionDate: "2026-11-02",
  reason: "Reason"
})
era group_class_joinings cancel_session \
  --schedule-id "GROUP_CLASS_SCHEDULE_ID" \
  --session-date "2026-11-02" \
  --reason "Reason"
tools/call
{
  "name": "era__group_classes__cancel_session",
  "arguments": {
    "scheduleId": "GROUP_CLASS_SCHEDULE_ID",
    "sessionDate": "2026-11-02",
    "reason": "Reason"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde group_classes:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 schedule_not_found, not_found, unknown_reason, no_such_session, session_cancelled, session_in_past, no_workspace · 429 çok sık istek

group_classes.create_class

Ders oluştur — Hizmetleri, kontenjanı ve haftalık saatleriyle bir ders, tek seferde.

Gereken izin group_classes:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/group_classes/actions/create_class
API anahtarı ya da OAuth token · group_classes:manage
  • Asıl adres: POST /api/v1/actions/group_classes.create_class

Girdi

AlanTürZorunluAçıklama
namestringevetAd · en çok 255
capacitynumberevetYer · en az 1 · en çok 10000
instructorUserIduuidEğitmen
itemVariantIdsobject / arrayevetHizmetler · [itemVariantId, …]
schedulesobject / arrayevetHaftalık saatler · [{ weekday: 0–6 (0 = Pazar), startTime: "HH:MM", duration: dakika, instructorUserId? }]

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
no_servicesEn az bir hizmet seçilmeli.
no_scheduleEn az bir geçerli haftalık saat verilmeli.
service_not_foundHer hizmet bulunmalı.
not_a_class_serviceYalnızca grup dersi olarak ayarlanmış hizmetler kullanılabilir.
service_not_offered_that_dayHer haftalık saat, hizmetlerinin sunulduğu bir güne düşmeli.
provider_cannot_performDersteki her hizmeti bir eğitmen vermeli.
schedule_existsAynı gün ve saat iki kez listelenemez.

Yayımladığı olaylar: group_classes.class_created

Neye yazar: group_class (insert) — Creates the class; group_class_service (insert) — Links its services; group_class_schedule (insert) — Writes its weekly series

curl -X POST https://app.getera.io/api/v1/group_classes/actions/create_class \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"name":"Name","capacity":1,"itemVariantIds":{},"schedules":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "group_classes.class_created"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.groupClasses.createClass({
  name: "Name",
  capacity: 1,
  itemVariantIds: {},
  schedules: {}
})
era group_classes create_class --data '{"name":"Name","capacity":1,"itemVariantIds":{},"schedules":{}}'
tools/call
{
  "name": "era__group_classes__create_class",
  "arguments": {
    "name": "Name",
    "capacity": 1,
    "itemVariantIds": {},
    "schedules": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde group_classes:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 no_services, no_schedule, service_not_found, not_a_class_service, service_not_offered_that_day, provider_cannot_perform, schedule_exists · 429 çok sık istek

group_classes.end_schedule

Seriyi bitir — Ders bir tarihten sonra bu saatte yapılmaz; sonraki rezervasyonlar iptal edilir.

Gereken izin group_classes:manage · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/group_class_schedules/{id}/actions/end_schedule
API anahtarı ya da OAuth token · group_classes:manage
  • Asıl adres: POST /api/v1/actions/group_classes.end_schedule

Girdi

AlanTürZorunluAçıklama
scheduleIduuidevetDoldurulduğu yer: adresteki {id} · Seri · kimliği: group_class_schedule
endsOndateevetSon seans
reasonstringevetNeden · en çok 64

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
schedule_not_foundSeri bulunmalı.
schedule_endedHâlâ devam ediyor olmalı.
not_foundDersi bulunmalı.
unknown_reasonNeden, çalışma alanının kullandığı nedenlerden biri olmalı.
ends_in_pastBir seri bugün veya daha sonra biter, asla geçmişte değil.
no_workspaceSaati için çalışma alanı okunabilir olmalı.

Yayımladığı olaylar: group_classes.series_ended, group_classes.joining_cancelled

Neye yazar: group_class_schedule (update) — Stamps ends_on; group_class_joining (update) — Cancels bookings after the last session

curl -X POST https://app.getera.io/api/v1/group_class_schedules/GROUP_CLASS_SCHEDULE_ID/actions/end_schedule \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"endsOn":"2026-11-02","reason":"Reason"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "group_classes.series_ended",
    "group_classes.joining_cancelled"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.groupClassSchedules.endSchedule("GROUP_CLASS_SCHEDULE_ID", {
  endsOn: "2026-11-02",
  reason: "Reason"
})
era group_class_schedules end_schedule GROUP_CLASS_SCHEDULE_ID \
  --ends-on "2026-11-02" \
  --reason "Reason"
tools/call
{
  "name": "era__group_classes__end_schedule",
  "arguments": {
    "scheduleId": "GROUP_CLASS_SCHEDULE_ID",
    "endsOn": "2026-11-02",
    "reason": "Reason"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde group_classes:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 schedule_not_found, schedule_ended, not_found, unknown_reason, ends_in_past, no_workspace · 429 çok sık istek

group_classes.join

Yer ayırt — Yer varken bir müşteriyi dersin bir seansına kaydeder.

Gereken izin group_classes:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/group_class_joinings/actions/join
API anahtarı ya da OAuth token · group_classes:write
  • Asıl adres: POST /api/v1/actions/group_classes.join

Girdi

AlanTürZorunluAçıklama
scheduleIduuidevetSeri · kimliği: group_class_schedule
sessionDatedateevetTarih
customerIduuidevetMüşteri · kimliği: customer

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
schedule_not_foundSeri bulunmalı.
not_foundDersi bulunmalı.
class_archivedKaldırılmış bir ders rezervasyon almaz.
no_such_sessionDers o tarihte yapılıyor olmalı.
session_cancelledSeans iptal edilmiş olmamalı.
inside_cutoffSeans başlamamış olmalı (ya da son rezervasyon süresinin içinde olmamalı).
outside_windowSeans rezervasyon penceresi içinde olmalı.
class_fullSeansta boş yer olmalı.
customer_not_foundMüşteri bu çalışma alanında bulunmalı.
customer_bannedMüşteri yasaklı olmamalı.
already_joinedAynı kişi bir seansa iki kez kaydedilemez.
no_workspaceSaati için çalışma alanı okunabilir olmalı.

Yayımladığı olaylar: group_classes.joined

Neye yazar: group_class_joining (insert) — Books the place, with its price frozen

curl -X POST https://app.getera.io/api/v1/group_class_joinings/actions/join \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"scheduleId":"GROUP_CLASS_SCHEDULE_ID","sessionDate":"2026-11-02","customerId":"CUSTOMER_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "group_classes.joined"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.groupClassJoinings.join({
  scheduleId: "GROUP_CLASS_SCHEDULE_ID",
  sessionDate: "2026-11-02",
  customerId: "CUSTOMER_ID"
})
era group_class_joinings join \
  --schedule-id "GROUP_CLASS_SCHEDULE_ID" \
  --session-date "2026-11-02" \
  --customer-id "CUSTOMER_ID"
tools/call
{
  "name": "era__group_classes__join",
  "arguments": {
    "scheduleId": "GROUP_CLASS_SCHEDULE_ID",
    "sessionDate": "2026-11-02",
    "customerId": "CUSTOMER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde group_classes:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 schedule_not_found, not_found, class_archived, no_such_session, session_cancelled, inside_cutoff, outside_window, class_full, customer_not_found, customer_banned, already_joined, no_workspace · 429 çok sık istek

group_classes.join_online

Online derse yer ayır — Ziyaretçi, site ders programından yer olan bir ders oturumunda kendine bir yer ayırır.

Gereken izin group_classes:write · veriyi değiştirir · Yayındaki bir siteden de çağrılabilir (visitor)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/group_class_joinings/actions/join_online
API anahtarı ya da OAuth token · group_classes:write
  • Asıl adres: POST /api/v1/actions/group_classes.join_online

Girdi

AlanTürZorunluAçıklama
scheduleIduuidevetSeri · kimliği: group_class_schedule
sessionDatedateevetTarih

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
guest_details_requiredMisafirin randevu almadan önce bilgilerini girmesi gerekir.
class_fullSeansta boş yer olmalı.

Yayımladığı olaylar: group_classes.joined

Neye yazar: group_class_joining (insert) — Books the place, with its price frozen

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde group_classes:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 guest_details_required, class_full · 429 çok sık istek

group_classes.mark_attendance

Yoklama al — Geldi ya da gelmedi.

Gereken izin group_classes:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/group_class_joinings/{id}/actions/mark_attendance
API anahtarı ya da OAuth token · group_classes:write
  • Asıl adres: POST /api/v1/actions/group_classes.mark_attendance

Girdi

AlanTürZorunluAçıklama
joiningIduuidevetDoldurulduğu yer: adresteki {id} · Rezervasyon · kimliği: group_class_joining
attendedbooleanevetKatıldı

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
joining_not_foundRezervasyon bulunmalı.
already_cancelledİptal edilmiş bir rezervasyonun yoklaması olmaz.
already_finishedYoklama bir kez kaydedilir.
not_yet_startedSeans başlamış olmalı.
no_workspaceSaati için çalışma alanı okunabilir olmalı.

Yayımladığı olaylar: group_classes.attended, group_classes.no_show

Neye yazar: group_class_joining (update) — Moves it to completed or no_show

curl -X POST https://app.getera.io/api/v1/group_class_joinings/GROUP_CLASS_JOINING_ID/actions/mark_attendance \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"attended":true}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "group_classes.attended",
    "group_classes.no_show"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.groupClassJoinings.markAttendance("GROUP_CLASS_JOINING_ID", {
  attended: true
})
era group_class_joinings mark_attendance GROUP_CLASS_JOINING_ID \
  --attended true
tools/call
{
  "name": "era__group_classes__mark_attendance",
  "arguments": {
    "joiningId": "GROUP_CLASS_JOINING_ID",
    "attended": true
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde group_classes:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 joining_not_found, already_cancelled, already_finished, not_yet_started, no_workspace · 429 çok sık istek

group_classes.set_services

Hizmetleri değiştir — Dersi hangi hizmetlerin oluşturduğu — ve dolayısıyla fiyatı.

Gereken izin group_classes:manage · siler ya da geri alınamaz

POSThttps://app.getera.io/api/v1/group_class_services/actions/set_services
API anahtarı ya da OAuth token · group_classes:manage
  • Asıl adres: POST /api/v1/actions/group_classes.set_services

Girdi

AlanTürZorunluAçıklama
iduuidevetDers · kimliği: group_class
itemVariantIdsobject / arrayevetHizmetler · [itemVariantId, …]

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSınıf bulunmalı.
class_archivedKaldırılmış bir ders düzenlenemez.
no_servicesEn az bir hizmet kalmalı.
service_not_foundHer hizmet bulunmalı.
not_a_class_serviceYalnızca grup dersi olarak ayarlanmış hizmetler kullanılabilir.
service_not_offered_that_dayHer hizmet dersin yapıldığı günlerde sunuluyor olmalı.

Yayımladığı olaylar: group_classes.class_updated

Neye yazar: group_class_service (upsert) — Sets the class’s services; group_class_service (delete) — Removes the ones no longer in it

curl -X POST https://app.getera.io/api/v1/group_class_services/actions/set_services \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"GROUP_CLASS_ID","itemVariantIds":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "group_classes.class_updated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.groupClassServices.setServices({
  id: "GROUP_CLASS_ID",
  itemVariantIds: {}
})
era group_class_services set_services --data '{"id":"GROUP_CLASS_ID","itemVariantIds":{}}'
tools/call
{
  "name": "era__group_classes__set_services",
  "arguments": {
    "id": "GROUP_CLASS_ID",
    "itemVariantIds": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde group_classes:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, class_archived, no_services, service_not_found, not_a_class_service, service_not_offered_that_day · 429 çok sık istek

group_classes.update_class

Dersi düzenle — Ad, kontenjan ve varsayılan eğitmen.

Gereken izin group_classes:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/group_classes/{id}/actions/update_class
API anahtarı ya da OAuth token · group_classes:manage
  • Asıl adres: POST /api/v1/actions/group_classes.update_class

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Ders · kimliği: group_class
namestringAd · en çok 255
capacitynumberYer · en az 1 · en çok 10000
instructorUserIduuidEğitmen
clearInstructorbooleanVarsayılan eğitmen yok

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundSınıf bulunmalı.
class_archivedKaldırılmış bir ders düzenlenemez.
capacity_below_bookedKontenjan yaklaşan bir seansın rezervasyonlarının altına inemez.
provider_cannot_performEğitmen dersteki her hizmeti vermeli.
no_workspaceSaati için çalışma alanı okunabilir olmalı.

Yayımladığı olaylar: group_classes.class_updated

Neye yazar: group_class (update) — Updates the class

curl -X POST https://app.getera.io/api/v1/group_classes/GROUP_CLASSE_ID/actions/update_class \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"name":"Name"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "group_classes.class_updated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.groupClasses.updateClass("GROUP_CLASSE_ID", {
  name: "Name"
})
era group_classes update_class GROUP_CLASSE_ID \
  --name "Name"
tools/call
{
  "name": "era__group_classes__update_class",
  "arguments": {
    "id": "GROUP_CLASSE_ID",
    "name": "Name"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde group_classes:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, class_archived, capacity_below_booked, provider_cannot_perform, no_workspace · 429 çok sık istek

group_classes.update_schedule

Haftalık saati düzenle — Süre ve eğitmen her zaman; gün ve saat yalnızca kimse kayıtlı değilken.

Gereken izin group_classes:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/group_class_schedules/{id}/actions/update_schedule
API anahtarı ya da OAuth token · group_classes:manage
  • Asıl adres: POST /api/v1/actions/group_classes.update_schedule

Girdi

AlanTürZorunluAçıklama
scheduleIduuidevetDoldurulduğu yer: adresteki {id} · Seri · kimliği: group_class_schedule
weekdaynumberGün · en az 0 · en çok 6
startTimestringBaşlangıç · en çok 8
durationnumberSüre (dakika) · en az 1 · en çok 1440
instructorUserIduuidEğitmen
clearInstructorbooleanDersin eğitmeni olsun

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
schedule_not_foundSeri bulunmalı.
schedule_endedBitmiş bir seri düzenlenemez.
class_archivedKaldırılmış bir ders düzenlenemez.
no_scheduleGün, saat ve süre düzgün biçimde olmalı.
has_upcoming_joiningsSeriye kayıtlı kişiler varken gün ve saat değişemez.
schedule_existsDers yeni gün ve saatte zaten yapılıyor olmamalı.
service_not_offered_that_dayDersin hizmetleri yeni günde sunuluyor olmalı.
provider_cannot_performEğitmen dersteki her hizmeti vermeli.

Yayımladığı olaylar: group_classes.series_updated

Neye yazar: group_class_schedule (update) — Updates the series

curl -X POST https://app.getera.io/api/v1/group_class_schedules/GROUP_CLASS_SCHEDULE_ID/actions/update_schedule \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"weekday":1}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "group_classes.series_updated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.groupClassSchedules.updateSchedule("GROUP_CLASS_SCHEDULE_ID", {
  weekday: 1
})
era group_class_schedules update_schedule GROUP_CLASS_SCHEDULE_ID \
  --weekday 1
tools/call
{
  "name": "era__group_classes__update_schedule",
  "arguments": {
    "scheduleId": "GROUP_CLASS_SCHEDULE_ID",
    "weekday": 1
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde group_classes:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 schedule_not_found, schedule_ended, class_archived, no_schedule, has_upcoming_joinings, schedule_exists, service_not_offered_that_day, provider_cannot_perform · 429 çok sık istek

Veri modelleri

GroupClassJoining

Tablo group_class_joining · Kaynak group_class_joinings

  • GET /api/v1/group_class_joinings
  • GET /api/v1/group_class_joinings/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
group_class_idstring (uuid) · uuidgroup_class
schedule_idstring (uuid) · uuidgroup_class_schedule
customer_idstring (uuid) · uuidcustomer
session_datestring (date) · date
start_timestring (time) · time
statusstring · textactive, cancelled, completed, no_show
price_amountstring (int64) · int8
price_currencystring · bpchareveten çok 3
cancelled_atstring (date-time) · timestamptzevet
cancellation_reasonstring · textevet
attended_marked_atstring (date-time) · timestamptzevet
owner_user_idstring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK ((price_amount >= 0))

GroupClassSchedule

Tablo group_class_schedule · Kaynak group_class_schedules

  • GET /api/v1/group_class_schedules
  • GET /api/v1/group_class_schedules/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
group_class_idstring (uuid) · uuidgroup_class
weekdayinteger · int4
start_timestring (time) · time
durationinteger · int4
instructor_user_idstring (uuid) · uuidevetapp_user
starts_onstring (date) · dateevet
ends_onstring (date) · dateevet
created_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK (((starts_on IS NULL) OR (ends_on IS NULL) OR (ends_on >= starts_on)))
  • CHECK ((duration > 0))
  • CHECK (((weekday >= 0) AND (weekday <= 6)))

GroupClassService

Tablo group_class_service · Kaynak group_class_services

  • GET /api/v1/group_class_services
  • GET /api/v1/group_class_services/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
group_class_idstring (uuid) · uuidgroup_class
item_variant_idstring (uuid) · uuiditem_variant
sort_orderinteger · int4
created_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: group_class_id, item_variant_id

GroupClass

Tablo group_class · Kaynak group_classes

  • GET /api/v1/group_classes
  • GET /api/v1/group_classes/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
namestring · text
capacityinteger · int4
instructor_user_idstring (uuid) · uuidevetapp_user
archived_atstring (date-time) · timestamptzevet
created_bystring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
is_publicboolean · boolevet

Birincil anahtar: id

Denetimler:

  • CHECK ((capacity > 0))
  • CHECK (((length(btrim(name)) >= 1) AND (length(btrim(name)) <= 255)))

Olaylar

İş akışları ve webhook'lar bu olaylara tepki verir.

OlayNe olurTaşıdığı alanlar
group_classes.attendedBir müşteri dersine geldi.id, groupClassId, customerId, sessionDate
group_classes.class_archivedBir ders kaldırıldı.id
group_classes.class_createdBir ders oluşturuldu.id, name, capacity
group_classes.class_updatedBir ders değişti.id
group_classes.joinedBir müşteri yer ayırttı.id, groupClassId, customerId, sessionDate, startTime, priceAmount, priceCurrency, scheduleId
group_classes.joining_cancelledBir ders kaydı iptal edildi.id, groupClassId, customerId, sessionDate, reason
group_classes.no_showBir müşteri dersine gelmedi.id, groupClassId, customerId, sessionDate
group_classes.series_createdBir ders yeni bir haftalık saatte başladı.id, groupClassId, weekday, startTime
group_classes.series_endedHaftalık bir seri sona erdirildi.id, groupClassId, endsOn, cancelled
group_classes.series_updatedBir haftalık saat değişti.id, groupClassId
group_classes.session_cancelledBir serinin bir tarihi iptal edildi.id, groupClassId, sessionDate, cancelled
Bu sayfa yardımcı oldu mu?