
enum Bezahlmethoden {
  paypal
  giropay
  sofort
  creditcard
  rechnung
}

enum Rechnungsstatus {
	open
	canceled
	pending
	authorized
	expired
	failed
	paid
}

enum AusweisTyp {
	Standard
	Beratung
	Offline
}

model Rechnung {
  id  Int    @id @default(autoincrement())
  uid String @unique @default(dbgenerated("'inv-' || gen_random_uuid()"))

  benutzer_id Int
  empfaenger  String? @db.VarChar
  strasse     String? @db.VarChar
  plz         String? @db.VarChar
  ort         String? @db.VarChar
  zusatzzeile String? @db.VarChar
  telefon     String? @db.VarChar
  email       String? @db.VarChar

  abweichende_versand_adresse Boolean? @default(false)
  versand_empfaenger          String?  @db.VarChar
  versand_strasse             String?  @db.VarChar
  versand_plz                 String?  @db.VarChar
  versand_ort                 String?  @db.VarChar
  versand_zusatzzeile         String?  @db.VarChar

  bezahlmethode         Bezahlmethoden
  status                Rechnungsstatus
  services              Service[]
	ausweistyp	AusweisTyp @default(Standard)
  betrag                Float
  erstellt_am           DateTime        @default(now())
  bezahlt_am            DateTime?
  storniert_am          DateTime?
  transaktions_referenz String?         @unique @db.VarChar

  benutzer                 Benutzer                   @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)

	verbrauchsausweis_wohnen VerbrauchsausweisWohnen?
	verbrauchsausweis_gewerbe VerbrauchsausweisGewerbe?
	bedarfsausweis_wohnen BedarfsausweisWohnen?
	bedarfsausweis_gewerbe BedarfsausweisGewerbe?
	geg_nachweis_gewerbe GEGNachweisGewerbe?
	geg_nachweis_wohnen GEGNachweisWohnen?
}


