package models

import (
	"gorm.io/gorm"
)

type User struct {
	gorm.Model
	Username string `json:"username" gorm:"uniqueIndex, column: username"`
	Password string
}

func (u User) Create() error {
	return DB().Create(&u).Error
}

func (u *User) Read() error {
	return DB().First(u, u).Error
}

func (u User) ReadAll(offset, limit int) ([]User, error) {
	var Users []User
	err := DB().Offset(offset).Limit(limit).Where(&u).Find(&Users).Error
	return Users, err
}

func (u *User) Update() error {
	return DB().Model(u).Where("username = ?", u.Username).Updates(u).Error
}

func (u *User) Delete() error {

	return DB().Where("username = ?", u.Username).Delete(u).Error
}