-- name: CreateKolPackage :one INSERT INTO kol_packages (tenant_id, kol_profile_id, name, description, cover_url, industry, tags, price_note, status) VALUES (sqlc.arg(tenant_id)::bigint, sqlc.arg(kol_profile_id), sqlc.arg(name), sqlc.arg(description), sqlc.arg(cover_url), sqlc.arg(industry), sqlc.arg(tags)::jsonb, sqlc.arg(price_note), 'draft') RETURNING id, tenant_id, kol_profile_id, name, description, cover_url, industry, tags, price_note, status, created_at, updated_at; -- name: GetKolPackageByID :one SELECT id, tenant_id, kol_profile_id, name, description, cover_url, industry, tags, price_note, status, created_at, updated_at FROM kol_packages WHERE id = sqlc.arg(id) AND tenant_id = sqlc.arg(tenant_id)::bigint AND deleted_at IS NULL; -- name: ListKolPackagesByProfile :many SELECT id, tenant_id, kol_profile_id, name, description, cover_url, industry, tags, price_note, status, created_at, updated_at FROM kol_packages WHERE kol_profile_id = sqlc.arg(kol_profile_id) AND tenant_id = sqlc.arg(tenant_id)::bigint AND deleted_at IS NULL ORDER BY created_at DESC; -- name: ListKolPackageIDsByProfile :many SELECT id FROM kol_packages WHERE kol_profile_id = sqlc.arg(kol_profile_id) AND tenant_id = sqlc.arg(tenant_id)::bigint AND deleted_at IS NULL; -- name: UpdateKolPackage :exec UPDATE kol_packages SET name = sqlc.arg(name), description = sqlc.arg(description), cover_url = sqlc.arg(cover_url), industry = sqlc.arg(industry), tags = sqlc.arg(tags)::jsonb, price_note = sqlc.arg(price_note), updated_at = NOW() WHERE id = sqlc.arg(id) AND tenant_id = sqlc.arg(tenant_id)::bigint AND deleted_at IS NULL; -- name: UpdateKolPackageStatus :exec UPDATE kol_packages SET status = sqlc.arg(status), updated_at = NOW() WHERE id = sqlc.arg(id) AND tenant_id = sqlc.arg(tenant_id)::bigint AND deleted_at IS NULL; -- name: SoftDeleteKolPackage :exec UPDATE kol_packages SET deleted_at = NOW() WHERE id = sqlc.arg(id) AND tenant_id = sqlc.arg(tenant_id)::bigint AND deleted_at IS NULL;