fix: presentation expiresAt — skip empty date, convert YYYY-MM-DD to end-of-day UTC

Empty string sent to Appwrite datetime column was being interpreted as creation
timestamp, making every no-expiry sunum immediately expired. Fix:
- Only include expiresAt in payload when user actually set a date
- Convert date-only string (YYYY-MM-DD) to YYYY-MM-DDT23:59:59.000Z so the
  sunum stays valid for the entire chosen day across all time zones
- Strip empty customerId/notes to avoid empty-string writes
This commit is contained in:
egecankomur
2026-05-05 20:19:02 +03:00
parent f043f4acd7
commit 1d5ad5f62f
2 changed files with 10 additions and 11 deletions
@@ -191,11 +191,6 @@ export function LoginForm1({
</Link>
</p>
</div>
{/* Alt logo — sadece geniş ekranda gizli olan mobil için */}
<p className="mt-10 text-xs text-muted-foreground lg:hidden">
Emlak CRM · Kovak Yazılım
</p>
</div>
</div>
);
+10 -6
View File
@@ -30,6 +30,8 @@ export async function createPresentationAction(
const data = parsed.data;
const id = ID.unique();
const shareToken = crypto.randomBytes(16).toString("hex");
// Convert "YYYY-MM-DD" → end-of-day UTC so the sunum is valid the full chosen day.
const expiresAt = data.expiresAt ? `${data.expiresAt}T23:59:59.000Z` : undefined;
try {
await tablesDB.createRow(
@@ -39,12 +41,12 @@ export async function createPresentationAction(
{
tenantId: ctx.tenantId,
title: data.title,
customerId: data.customerId,
customerId: data.customerId || undefined,
propertyIds: data.propertyIds,
shareToken,
expiresAt: data.expiresAt,
...(expiresAt ? { expiresAt } : {}),
viewCount: 0,
notes: data.notes,
notes: data.notes || undefined,
createdBy: ctx.user.id,
},
[
@@ -81,13 +83,15 @@ export async function updatePresentationAction(
const { tablesDB } = createAdminClient();
const data = parsed.data;
const expiresAt = data.expiresAt ? `${data.expiresAt}T23:59:59.000Z` : undefined;
try {
await tablesDB.updateRow(DATABASE_ID, TABLES.presentations, id, {
title: data.title,
customerId: data.customerId,
customerId: data.customerId || undefined,
propertyIds: data.propertyIds,
expiresAt: data.expiresAt,
notes: data.notes,
...(expiresAt ? { expiresAt } : {}),
notes: data.notes || undefined,
});
} catch {
return { ok: false, error: "Sunum güncellenemedi." };