import {Attr, Str, Bool, Num, Model, Uid} from '@vuex-orm/core'

export class Organization extends Model {
  static entity = 'organizations'

  @Uid()
  id!: number | string | null

  @Attr({})
  originalState!: object | null

  @Str(null, { nullable: true })
  name!: string|null

  @Str(null, { nullable: true })
  acronym!: string|null

  @Str(null, { nullable: true })
  siretNumber!: string|null

  @Str(null, { nullable: true })
  apeNumber!: string|null

  @Str(null, { nullable: true })
  waldecNumber!: string|null

  @Str(null, { nullable: true })
  identifier!: string|null

  @Str(null, { nullable: true })
  ffecApproval!: string|null

  @Str(null, { nullable: true })
  description!: string|null

  @Attr([])
  typeOfPractices!: []

  @Str(null, { nullable: true })
  otherPractice!: string|null

  @Str(null, { nullable: true })
  legalStatus!: string|null

  @Str(null, { nullable: true })
  principalType!: string|null

  @Str(null, { nullable: true })
  youngApproval!: string|null

  @Str(null, { nullable: true })
  trainingApproval!: string|null

  @Str(null, { nullable: true })
  otherApproval!: string|null

  @Str(null, { nullable: true })
  collectiveAgreement!: string|null

  @Str(null, { nullable: true })
  opca!: string|null

  @Str(null, { nullable: true })
  icomNumber!: string|null

  @Str(null, { nullable: true })
  urssafNumber!: string|null

  @Str(null, { nullable: true })
  twitter!: string|null

  @Str(null, { nullable: true })
  youtube!: string|null

  @Str(null, { nullable: true })
  facebook!: string|null

  @Str(null, { nullable: true })
  instagram!: string|null

  @Bool(true, { nullable: false })
  portailVisibility!: boolean

  @Str(null, { nullable: true })
  image!: string|null

  @Str(null, { nullable: true })
  creationDate!: string|null

  @Str(null, { nullable: true })
  prefectureName!: string|null

  @Str(null, { nullable: true })
  prefectureNumber!: string|null

  @Str(null, { nullable: true })
  declarationDate!: string|null

  @Str(null, { nullable: true })
  tvaNumber!: string|null

  @Str(null, { nullable: true })
  schoolCategory!: string|null

  @Str(null, { nullable: true })
  typeEstablishment!: string|null

  @Str(null, { nullable: true })
  typeEstablishmentDetail!: string|null

  @Bool(false, { nullable: false })
  isPerformanceContractor!: boolean

  @Num(0, { nullable: true })
  budget!: number

  @Bool(false, { nullable: false })
  isPedagogicIsPrincipalActivity!: boolean

  @Num(0, { nullable: true })
  pedagogicBudget!: number

  @Str(null, { nullable: true })
  logo!: string|null
}
