0558d92203
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
155 lines
4.2 KiB
TypeScript
155 lines
4.2 KiB
TypeScript
import type { HouseholdRole } from "@/features/households/types";
|
||
import type { AccountType, MealCardProvider } from "@/shared/accounts";
|
||
import type { IconKey, Swatch } from "@/shared/appearance";
|
||
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" },
|
||
],
|
||
},
|
||
];
|
||
|
||
/** Örnek hesaplar (tutarlar kuruş; kart borcu negatif). Açılış: 6 ay önce. */
|
||
export type SeedAccount = {
|
||
household: string;
|
||
name: string;
|
||
type: AccountType;
|
||
institution?: string;
|
||
openingBalanceMinor: number;
|
||
color: Swatch;
|
||
icon: IconKey;
|
||
owner?: string;
|
||
isPrivate?: boolean;
|
||
mealCardProvider?: MealCardProvider;
|
||
overdraft?: { limitMinor: number; monthlyRateBp: number; statementDay: number };
|
||
creditCard?: {
|
||
limitMinor: number;
|
||
statementDay: number;
|
||
dueDays: number;
|
||
paymentAccount: string;
|
||
};
|
||
};
|
||
|
||
export const SEED_ACCOUNTS: SeedAccount[] = [
|
||
{
|
||
household: "Çakır Ailesi",
|
||
name: "Cüzdan",
|
||
type: "cash",
|
||
openingBalanceMinor: 2_350_00,
|
||
color: "green",
|
||
icon: "wallet",
|
||
},
|
||
{
|
||
household: "Çakır Ailesi",
|
||
name: "Ziraat Maaş",
|
||
type: "bank",
|
||
institution: "Ziraat Bankası",
|
||
openingBalanceMinor: 18_420_50,
|
||
color: "red",
|
||
icon: "landmark",
|
||
overdraft: { limitMinor: 10_000_00, monthlyRateBp: 425, statementDay: 1 },
|
||
},
|
||
{
|
||
household: "Çakır Ailesi",
|
||
name: "Garanti Bonus",
|
||
type: "credit_card",
|
||
institution: "Garanti BBVA",
|
||
openingBalanceMinor: -6_480_75,
|
||
color: "teal",
|
||
icon: "credit-card",
|
||
creditCard: {
|
||
limitMinor: 60_000_00,
|
||
statementDay: 29,
|
||
dueDays: 10,
|
||
paymentAccount: "Ziraat Maaş",
|
||
},
|
||
},
|
||
{
|
||
household: "Çakır Ailesi",
|
||
name: "Birikim (Vadeli)",
|
||
type: "savings",
|
||
institution: "Ziraat Bankası",
|
||
openingBalanceMinor: 45_000_00,
|
||
color: "indigo",
|
||
icon: "piggy-bank",
|
||
},
|
||
{
|
||
household: "Çakır Ailesi",
|
||
name: "Ayşe — Pluxee",
|
||
type: "meal_card",
|
||
mealCardProvider: "pluxee",
|
||
openingBalanceMinor: 3_120_00,
|
||
color: "lime",
|
||
icon: "utensils",
|
||
owner: "ayse",
|
||
isPrivate: true,
|
||
},
|
||
{
|
||
household: "Annemler",
|
||
name: "Nakit",
|
||
type: "cash",
|
||
openingBalanceMinor: 1_500_00,
|
||
color: "green",
|
||
icon: "wallet",
|
||
},
|
||
{
|
||
household: "Annemler",
|
||
name: "Vakıfbank Emekli",
|
||
type: "bank",
|
||
institution: "VakıfBank",
|
||
openingBalanceMinor: 27_800_00,
|
||
color: "amber",
|
||
icon: "landmark",
|
||
},
|
||
];
|