package conds

import (
	"quyun/database/fields"
	"quyun/database/schemas/public/table"

	. "github.com/go-jet/jet/v2/postgres"
)

func Post_NotDeleted() Cond {
	return func(cond BoolExpression) BoolExpression {
		return cond.AND(table.Posts.DeletedAt.IS_NULL())
	}
}

func Post_Status(s fields.PostStatus) Cond {
	return func(cond BoolExpression) BoolExpression {
		return cond.AND(table.Posts.Status.EQ(Int(int64(s))))
	}
}

func Post_Like(key *string) Cond {
	return func(cond BoolExpression) BoolExpression {
		tbl := table.Posts
		if key == nil || *key == "" {
			return cond
		}

		cond = cond.AND(
			tbl.Title.LIKE(String("%" + *key + "%")).
				OR(
					tbl.Content.LIKE(String("%" + *key + "%")),
				).
				OR(
					tbl.Description.LIKE(String("%" + *key + "%")),
				),
		)

		return cond
	}
}
