29 lines
921 B
Go
29 lines
921 B
Go
package models
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
// User merepresentasikan tabel users di database
|
|
type User struct {
|
|
ID string `json:"id"` // UUID, server-generated
|
|
Username string `json:"username"` // unique, case-sensitive, 3-32 chars
|
|
PasswordHash string `json:"-"` // never returned in any response
|
|
}
|
|
|
|
// Session merepresentasikan tabel sessions di database
|
|
type Session struct {
|
|
Token string `json:"token"` // server-generated, unique bearer token
|
|
UserID string `json:"user_id"` // foreign key ke users.id
|
|
CreatedAt time.Time `json:"created_at"` // informational only
|
|
}
|
|
|
|
// Snippet merepresentasikan tabel snippets di database
|
|
// UserID disimpan di DB tapi tidak di-serialize ke JSON response
|
|
type Snippet struct {
|
|
ID string `json:"id"`
|
|
Title string `json:"title"`
|
|
Content string `json:"content"`
|
|
UserID string `json:"-"` // internal only, not in JSON response
|
|
}
|