package models

import "time"

type Problem struct {
	Id           int32     `db:"id"`
	Title        string    `db:"title"`
	Legend       string    `db:"legend"`
	InputFormat  string    `db:"input_format"`
	OutputFormat string    `db:"output_format"`
	Notes        string    `db:"notes"`
	Tutorial     string    `db:"tutorial"`
	LatexSummary string    `db:"latex_summary"`
	TimeLimit    int32     `db:"time_limit"`
	MemoryLimit  int32     `db:"memory_limit"`
	CreatedAt    time.Time `db:"created_at"`
	UpdatedAt    time.Time `db:"updated_at"`
}

type ProblemListItem struct {
	Id          int32     `db:"id"`
	Title       string    `db:"title"`
	MemoryLimit int32     `db:"memory_limit"`
	TimeLimit   int32     `db:"time_limit"`
	CreatedAt   time.Time `db:"created_at"`
	UpdatedAt   time.Time `db:"updated_at"`
}

type ProblemUpdate struct {
	Title        *string `db:"title"`
	Legend       *string `db:"legend"`
	InputFormat  *string `db:"input_format"`
	OutputFormat *string `db:"output_format"`
	Notes        *string `db:"notes"`
	Tutorial     *string `db:"tutorial"`
	LatexSummary *string `db:"latex_summary"`
	MemoryLimit  *int32  `db:"memory_limit"`
	TimeLimit    *int32  `db:"time_limit"`
}

type ProblemStatement struct {
	Title        string `db:"title"`
	Legend       string `db:"legend"`
	InputFormat  string `db:"input_format"`
	OutputFormat string `db:"output_format"`
	Notes        string `db:"notes"`
	Tutorial     string `db:"tutorial"`
	TimeLimit    int32  `db:"time_limit"`
	MemoryLimit  int32  `db:"memory_limit"`
}