import { FormGroup, FormControl, Validators } from '@angular/forms';

export const constraintViolationJsonForm = new FormGroup({
  status: new FormControl(null, []),
  violations: new FormControl(null, []),
  detail: new FormControl(null, []),
  type: new FormControl(null, []),
  title: new FormControl(null, []),
  instance: new FormControl(null, [])
});

export const constraintViolationJsonldJsonldForm = new FormGroup({
  status: new FormControl(null, []),
  violations: new FormControl(null, []),
  detail: new FormControl(null, []),
  description: new FormControl(null, []),
  type: new FormControl(null, []),
  title: new FormControl(null, []),
  instance: new FormControl(null, [])
});

export const errorForm = new FormGroup({
  title: new FormControl(null, []),
  detail: new FormControl(null, []),
  status: new FormControl(null, []),
  instance: new FormControl(null, []),
  type: new FormControl(null, [])
});

export const errorJsonldForm = new FormGroup({
  title: new FormControl(null, []),
  detail: new FormControl(null, []),
  status: new FormControl(null, []),
  instance: new FormControl(null, []),
  type: new FormControl(null, []),
  description: new FormControl(null, [])
});

export const eventJsonldForm = new FormGroup({
  dbId: new FormControl(null, []),
  name: new FormControl(null, []),
  identifier: new FormControl(null, []),
  sequence: new FormControl(null, []),
  mandatory: new FormControl(null, []),
  createdAt: new FormControl(null, [])
});

export const locationForm = new FormGroup({
  dbId: new FormControl(null, []),
  zone: new FormControl(null, []),
  zoneIri: new FormControl(null, [Validators.required]),
  name: new FormControl(null, [Validators.required]),
  code: new FormControl(null, [Validators.required]),
  zoneName: new FormControl(null, []),
  isZone: new FormControl(null, []),
  isPlace: new FormControl(null, []),
  isPort: new FormControl(null, []),
  isStartEnd: new FormControl(null, []),
  createdAt: new FormControl(null, [])
});

export const locationJsonldForm = new FormGroup({
  dbId: new FormControl(null, []),
  zone: new FormControl(null, []),
  zoneIri: new FormControl(null, [Validators.required]),
  name: new FormControl(null, [Validators.required]),
  code: new FormControl(null, [Validators.required]),
  zoneName: new FormControl(null, []),
  isZone: new FormControl(null, []),
  isPlace: new FormControl(null, []),
  isPort: new FormControl(null, []),
  isStartEnd: new FormControl(null, []),
  createdAt: new FormControl(null, [])
});

export const mediaObjectJsonldForm = new FormGroup({
  dbId: new FormControl(null, []),
  contentUrl: new FormControl(null, []),
  filePath: new FormControl(null, []),
  createdAt: new FormControl(null, [])
});

export const shippingCompanyForm = new FormGroup({
  dbId: new FormControl(null, []),
  name: new FormControl(null, [Validators.required]),
  code: new FormControl(null, [Validators.required]),
  createdAt: new FormControl(null, [])
});

export const shippingCompanyJsonldForm = new FormGroup({
  dbId: new FormControl(null, []),
  name: new FormControl(null, [Validators.required]),
  code: new FormControl(null, [Validators.required]),
  createdAt: new FormControl(null, [])
});

export const tripForm = new FormGroup({
  dbId: new FormControl(null, []),
  vessel: new FormControl(null, []),
  vesselIri: new FormControl(null, [Validators.required]),
  pilotageReference: new FormControl(null, []),
  startLocation: new FormControl(null, []),
  startLocationIri: new FormControl(null, [Validators.required]),
  endLocation: new FormControl(null, []),
  endLocationIri: new FormControl(null, [Validators.required]),
  startDate: new FormControl(null, [Validators.required]),
  endDate: new FormControl(null, [Validators.required]),
  note: new FormControl(null, []),
  completed: new FormControl(null, []),
  createdAt: new FormControl(null, [])
});

export const tripJsonldForm = new FormGroup({
  dbId: new FormControl(null, []),
  vessel: new FormControl(null, []),
  vesselIri: new FormControl(null, [Validators.required]),
  pilotageReference: new FormControl(null, []),
  startLocation: new FormControl(null, []),
  startLocationIri: new FormControl(null, [Validators.required]),
  endLocation: new FormControl(null, []),
  endLocationIri: new FormControl(null, [Validators.required]),
  startDate: new FormControl(null, [Validators.required]),
  endDate: new FormControl(null, [Validators.required]),
  note: new FormControl(null, []),
  completed: new FormControl(null, []),
  createdAt: new FormControl(null, [])
});

export const tripLocationForm = new FormGroup({
  dbId: new FormControl(null, []),
  trip: new FormControl(null, []),
  tripIri: new FormControl(null, [Validators.required]),
  location: new FormControl(null, []),
  locationIri: new FormControl(null, [Validators.required]),
  arrivalDateTime: new FormControl(null, []),
  departureDateTime: new FormControl(null, []),
  createdAt: new FormControl(null, [])
});

export const tripLocationJsonldForm = new FormGroup({
  dbId: new FormControl(null, []),
  trip: new FormControl(null, []),
  tripIri: new FormControl(null, [Validators.required]),
  location: new FormControl(null, []),
  locationIri: new FormControl(null, [Validators.required]),
  arrivalDateTime: new FormControl(null, []),
  departureDateTime: new FormControl(null, []),
  createdAt: new FormControl(null, [])
});

export const userForm = new FormGroup({
  dbId: new FormControl(null, []),
  email: new FormControl(null, [Validators.required, Validators.email]),
  firstName: new FormControl(null, [Validators.required]),
  referenceId: new FormControl(null, [Validators.required]),
  lastName: new FormControl(null, [Validators.required]),
  image: new FormControl(null, []),
  imageIri: new FormControl(null, []),
  imageUrl: new FormControl(null, []),
  fullName: new FormControl(null, []),
  password: new FormControl(null, []),
  isAdmin: new FormControl(null, [Validators.required]),
  active: new FormControl(null, [Validators.required]),
  isPilot: new FormControl(null, [Validators.required]),
  roles: new FormControl(null, []),
  createdAt: new FormControl(null, [])
});

export const userJsonldForm = new FormGroup({
  dbId: new FormControl(null, []),
  email: new FormControl(null, [Validators.required, Validators.email]),
  firstName: new FormControl(null, [Validators.required]),
  referenceId: new FormControl(null, [Validators.required]),
  lastName: new FormControl(null, [Validators.required]),
  image: new FormControl(null, []),
  imageIri: new FormControl(null, []),
  imageUrl: new FormControl(null, []),
  fullName: new FormControl(null, []),
  password: new FormControl(null, []),
  isAdmin: new FormControl(null, [Validators.required]),
  active: new FormControl(null, [Validators.required]),
  isPilot: new FormControl(null, [Validators.required]),
  roles: new FormControl(null, []),
  createdAt: new FormControl(null, [])
});

export const userTripForm = new FormGroup({
  dbId: new FormControl(null, []),
  trip: new FormControl(null, []),
  tripIri: new FormControl(null, [Validators.required]),
  user: new FormControl(null, []),
  userIri: new FormControl(null, [Validators.required]),
  captainName: new FormControl(null, []),
  completed: new FormControl(null, [Validators.required]),
  approved: new FormControl(null, [Validators.required]),
  signature: new FormControl(null, []),
  signatureIri: new FormControl(null, []),
  signatureUrl: new FormControl(null, []),
  completedDate: new FormControl(null, []),
  createdAt: new FormControl(null, [])
});

export const userTripJsonldForm = new FormGroup({
  dbId: new FormControl(null, []),
  trip: new FormControl(null, []),
  tripIri: new FormControl(null, [Validators.required]),
  user: new FormControl(null, []),
  userIri: new FormControl(null, [Validators.required]),
  captainName: new FormControl(null, []),
  completed: new FormControl(null, [Validators.required]),
  approved: new FormControl(null, [Validators.required]),
  signature: new FormControl(null, []),
  signatureIri: new FormControl(null, []),
  signatureUrl: new FormControl(null, []),
  completedDate: new FormControl(null, []),
  createdAt: new FormControl(null, [])
});

export const userTripEventForm = new FormGroup({
  dbId: new FormControl(null, []),
  userTrip: new FormControl(null, []),
  userTripIri: new FormControl(null, [Validators.required]),
  event: new FormControl(null, []),
  eventIri: new FormControl(null, [Validators.required]),
  location: new FormControl(null, []),
  locationIri: new FormControl(null, [Validators.required]),
  user: new FormControl(null, []),
  date: new FormControl(null, [Validators.required]),
  note: new FormControl(null, []),
  createdAt: new FormControl(null, [])
});

export const userTripEventJsonldForm = new FormGroup({
  dbId: new FormControl(null, []),
  userTrip: new FormControl(null, []),
  userTripIri: new FormControl(null, [Validators.required]),
  event: new FormControl(null, []),
  eventIri: new FormControl(null, [Validators.required]),
  location: new FormControl(null, []),
  locationIri: new FormControl(null, [Validators.required]),
  user: new FormControl(null, []),
  date: new FormControl(null, [Validators.required]),
  note: new FormControl(null, []),
  createdAt: new FormControl(null, [])
});

export const vesselForm = new FormGroup({
  dbId: new FormControl(null, []),
  name: new FormControl(null, [Validators.required]),
  code: new FormControl(null, [Validators.required]),
  company: new FormControl(null, []),
  companyIri: new FormControl(null, [Validators.required]),
  length: new FormControl(null, []),
  breadth: new FormControl(null, []),
  draft: new FormControl(null, []),
  grossTonnage: new FormControl(null, []),
  imoNo: new FormControl(null, []),
  callSign: new FormControl(null, []),
  createdAt: new FormControl(null, [])
});

export const vesselJsonldForm = new FormGroup({
  dbId: new FormControl(null, []),
  name: new FormControl(null, [Validators.required]),
  code: new FormControl(null, [Validators.required]),
  company: new FormControl(null, []),
  companyIri: new FormControl(null, [Validators.required]),
  length: new FormControl(null, []),
  breadth: new FormControl(null, []),
  draft: new FormControl(null, []),
  grossTonnage: new FormControl(null, []),
  imoNo: new FormControl(null, []),
  callSign: new FormControl(null, []),
  createdAt: new FormControl(null, [])
});

export const zoneForm = new FormGroup({
  dbId: new FormControl(null, []),
  name: new FormControl(null, [Validators.required]),
  createdAt: new FormControl(null, [])
});

export const zoneJsonldForm = new FormGroup({
  dbId: new FormControl(null, []),
  name: new FormControl(null, [Validators.required]),
  createdAt: new FormControl(null, [])
});

export const credentialsForm = new FormGroup({
  email: new FormControl(null, []),
  password: new FormControl(null, [])
});

export const authResponseForm = new FormGroup({
  dbId: new FormControl(null, []),
  token: new FormControl(null, [])
});
