// See https://kit.svelte.dev/docs/types#app

interface Subscription {
  id: string;
  name: string;
  details: string;
  conditions: string | null;
  monthly_fee: number;
  hourly_rate: number;
  included_hours_per_year: number | null;
  included_hours_per_month: number | null;
}

interface Membership {
  id: string;
  status: string;
  start_date: string;
  end_date: string;
  parent_member_id: number | null;
  subscription_model: Subscription | null;
}

interface BankAccount {
  id: string;
  mandate_date_signed: string;
  bank: string;
  account_holder_name: string;
  iban: string;
  bic: string;
  mandate_reference: string;
}

interface User {
  email: string;
  first_name: string;
  last_name: string;
  phone: string | null;
  notes: string;
  address: string;
  zip_code: string;
  city: string;
  status: number;
  id: string;
  role_id: number;
  date_of_birth: string;
  membership: Membership;
  bank_account: BankAccount;
  company: string | null;
  profile_picture: string | null;
  payment_status: number;
}

declare global {
  namespace App {
    // interface Error {}
    interface Locals {
      user: User;
    }
    // interface PageData {}
    // interface Platform {}
  }
}

export {};
