/* * This file is part of sdbapi * Copyright (C) 2023 Jonni Liljamo <jonni@liljamo.com> * * Licensed under GPL-3.0-only. * See LICENSE for licensing information. */ package models import ( "time" "gorm.io/gorm" ) const ( GAMESTATE_FORMING uint8 = 0 GAMESTATE_INPROGRESS uint8 = 1 GAMESTATE_FINISHED uint8 = 2 GAMESTATE_CANCELLED uint8 = 3 ) type Game struct { ID string `json:"id" gorm:"primarykey;type:uuid;default:gen_random_uuid()"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` DeletedAt gorm.DeletedAt `json:"-" gorm:"index"` HostID string `json:"host_id"` Host User `json:"host" gorm:"constraint:OnUpdate:CASCADE,OnDelete:SET NULL;"` GuestID string `json:"guest_id" gorm:"default:NULL;"` Guest User `json:"guest" gorm:"constraint:OnUpdate:CASCADE,OnDelete:SET NULL;"` State uint8 `json:"state" gorm:"type:smallint"` EndedAt time.Time `json:"ended_at" gorm:"type:timestamptz"` GameDataID string `json:"game_data_id" gorm:"default:NULL;"` GameData GameData `json:"game_data" gorm:"constraint:OnUpdate:CASCADE,OnDelete:SET NULL;"` }