// Code generated by sqlc. DO NOT EDIT.
// versions:
//   sqlc v1.30.0

package database

import (
	"database/sql"
	"time"
)

type Account struct {
	ID                string    `json:"id"`
	UserID            string    `json:"user_id"`
	Provider          string    `json:"provider"`
	ProviderAccountID string    `json:"provider_account_id"`
	CreatedAt         time.Time `json:"created_at"`
}

type Anime struct {
	ID            int64          `json:"id"`
	TitleOriginal string         `json:"title_original"`
	ImageUrl      string         `json:"image_url"`
	CreatedAt     time.Time      `json:"created_at"`
	TitleEnglish  sql.NullString `json:"title_english"`
	TitleJapanese sql.NullString `json:"title_japanese"`
	Airing        sql.NullBool   `json:"airing"`
}

type NotificationPreference struct {
	ID                string    `json:"id"`
	UserID            string    `json:"user_id"`
	NotifyNewEpisodes bool      `json:"notify_new_episodes"`
	CreatedAt         time.Time `json:"created_at"`
}

type Session struct {
	ID        string    `json:"id"`
	UserID    string    `json:"user_id"`
	ExpiresAt time.Time `json:"expires_at"`
	CreatedAt time.Time `json:"created_at"`
}

type User struct {
	ID           string    `json:"id"`
	Username     string    `json:"username"`
	PasswordHash string    `json:"password_hash"`
	CreatedAt    time.Time `json:"created_at"`
}

type WatchListEntry struct {
	ID             string        `json:"id"`
	UserID         string        `json:"user_id"`
	AnimeID        int64         `json:"anime_id"`
	Status         string        `json:"status"`
	CreatedAt      time.Time     `json:"created_at"`
	UpdatedAt      time.Time     `json:"updated_at"`
	CurrentEpisode sql.NullInt64 `json:"current_episode"`
	LastEpisodeAt  sql.NullTime  `json:"last_episode_at"`
}
