feat(seed): örnek aile kullanıcıları, haneler ve roller (idempotent)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-05 02:14:10 +03:00
parent 38e2a7a26d
commit 2b648975ae
7 changed files with 369 additions and 53 deletions
+58
View File
@@ -0,0 +1,58 @@
import type { HouseholdRole } from "@/features/households/types";
import type { SystemRole } from "@/shared/schemas/common";
/** Örnek (geliştirme) kullanıcıları. E-postası olmayanlar kullanıcı adıyla giriş yapar. */
export type SeedUser = {
username: string;
name: string;
email?: string;
role: SystemRole;
banReason?: string;
};
export const SEED_USERS: SeedUser[] = [
{ username: "ayse", name: "Ayşe Çakır", email: "ayse@butcem.local", role: "user" },
{ username: "emre", name: "Emre Çakır", role: "user" },
{ username: "zeynep", name: "Zeynep Çakır", role: "user" },
{ username: "fatma", name: "Fatma Demir", email: "fatma@butcem.local", role: "user" },
{ username: "mehmet", name: "Mehmet Demir", email: "mehmet@butcem.local", role: "user" },
// İkinci admin: hiçbir haneye üye değil → hane verisini göremez (Faz 0 kararı).
{ username: "burak", name: "Burak Öztürk", email: "burak@butcem.local", role: "admin" },
{
username: "ozan",
name: "Ozan Kaya",
email: "ozan@butcem.local",
role: "user",
banReason: "Ev arkadaşlığı sona erdi; erişim kaldırıldı.",
},
];
/** Seed admin'in kullanıcı adı (SEED_ADMIN_EMAIL ile oluşturulur). */
export const ADMIN_USERNAME = "admin";
export type SeedHousehold = {
name: string;
members: { username: string; role: HouseholdRole }[];
};
export const SEED_HOUSEHOLDS: SeedHousehold[] = [
{
name: "Çakır Ailesi",
members: [
{ username: ADMIN_USERNAME, role: "owner" },
{ username: "ayse", role: "owner" },
{ username: "emre", role: "member" },
{ username: "zeynep", role: "viewer" },
{ username: "ozan", role: "member" },
],
},
{
name: "Annemler",
members: [
{ username: "fatma", role: "owner" },
{ username: "mehmet", role: "member" },
// Bir kullanıcı birden çok haneye üye olabilir.
{ username: "ayse", role: "viewer" },
],
},
];