interface Pagination {
  rowsPerPage: number
}

interface DataDateMonthObject {
  month: number
  year: number
}

interface ChangeActive {
  name: string
  id: number
}

//ข้อมูลส่วนตัว
interface Information {
  cardid: string
  prefix: string
  prefixId: string
  firstname: string
  lastname: string
  birthDate: Date
  genderId: string
  bloodId: string
  nationality: string
  ethnicity: string
  religionId: string
  tel: string
  phone: string
  email: string
  provinceId: string
  cardIdDate: Date
  statusId: string
  knowledge: string
}

interface Family {
  prefixC: string // couple
  prefixIdC: string
  firstnameC: string
  lastnameC: string
  occupationC: string
  nationalityC: string
  prefixM: string // male
  prefixIdM: string
  firstnameM: string
  lastnameM: string
  occupationM: string
  nationalityM: string
  prefixF: string // female
  prefixIdF: string
  firstnameF: string
  lastnameF: string
  occupationF: string
  nationalityF: string
  same: string
}

interface Occupation {
  status: string
  company: string
  department: string
  email: string
  tel: string
  official: string | null
  personnel: string | null
  officialsOther: string | null
  employee: string | null
  other: string | null
}

interface Address {
  address: string
  provinceId: string
  districtId: string
  subdistrictId: string
  code: number
  addressC: string
  provinceIdC: string
  districtIdC: string
  subdistrictIdC: string
  codeC: number
  same: string
}

interface DataOption {
  id: string
  name: string
  zipCode?: string
}

interface zipCodeOption {
  id: string
  name: string
  zipCode: string
}

interface ExamCard {
  id: string
  title: string
  announcementDate: Date
  registerRound: Number
  registerDateStart: Date
  registerDateEnd: Date
  yearly: Date
}

const defaultCard: ExamCard[] = [
  {
    id: '1',
    title: 'การสอบภาค ข. พิเศษ สำหรับผู้สอบผ่านของส่วนราชการแล้ว',
    registerRound: 2,
    announcementDate: new Date('2022-11-23'),
    registerDateStart: new Date('2022-11-09'),
    registerDateEnd: new Date('2022-11-10'),
    yearly: new Date('2022-01-01')
  },
  {
    id: '2',
    title: 'การสอบภาค ก. พิเศษ สำหรับผู้สอบผ่านของส่วนราชการแล้ว',
    registerRound: 1,
    announcementDate: new Date('2022-10-14'),
    registerDateStart: new Date('2022-10-09'),
    registerDateEnd: new Date('2022-11-30'),
    yearly: new Date('2022-01-01')
  },
  {
    id: '2',
    title: 'การสอบภาค ก. พิเศษ สำหรับผู้สอบผ่านของส่วนราชการแล้ว',
    registerRound: 1,
    announcementDate: new Date('2022-10-14'),
    registerDateStart: new Date('2022-10-09'),
    registerDateEnd: new Date('2022-11-30'),
    yearly: new Date('2022-01-01')
  },
  {
    id: '2',
    title: 'การสอบภาค ก. พิเศษ สำหรับผู้สอบผ่านของส่วนราชการแล้ว',
    registerRound: 1,
    announcementDate: new Date('2022-10-14'),
    registerDateStart: new Date('2022-10-09'),
    registerDateEnd: new Date('2022-11-30'),
    yearly: new Date('2022-01-01')
  },
  {
    id: '2',
    title: 'การสอบภาค ก. พิเศษ สำหรับผู้สอบผ่านของส่วนราชการแล้ว',
    registerRound: 1,
    announcementDate: new Date('2022-10-14'),
    registerDateStart: new Date('2022-10-09'),
    registerDateEnd: new Date('2022-11-30'),
    yearly: new Date('2022-01-01')
  },
  {
    id: '2',
    title: 'การสอบภาค ก. พิเศษ สำหรับผู้สอบผ่านของส่วนราชการแล้ว',
    registerRound: 1,
    announcementDate: new Date('2022-10-14'),
    registerDateStart: new Date('2022-10-09'),
    registerDateEnd: new Date('2022-11-30'),
    yearly: new Date('2022-01-01')
  },
  {
    id: '2',
    title: 'การสอบภาค ก. พิเศษ สำหรับผู้สอบผ่านของส่วนราชการแล้ว',
    registerRound: 1,
    announcementDate: new Date('2022-10-14'),
    registerDateStart: new Date('2022-10-09'),
    registerDateEnd: new Date('2022-11-30'),
    yearly: new Date('2022-01-01')
  },
  {
    id: '2',
    title: 'การสอบภาค ก. พิเศษ สำหรับผู้สอบผ่านของส่วนราชการแล้ว',
    registerRound: 1,
    announcementDate: new Date('2022-10-14'),
    registerDateStart: new Date('2022-10-09'),
    registerDateEnd: new Date('2022-11-30'),
    yearly: new Date('2022-01-01')
  },
  {
    id: '2',
    title: 'การสอบภาค ก. พิเศษ สำหรับผู้สอบผ่านของส่วนราชการแล้ว',
    registerRound: 1,
    announcementDate: new Date('2022-10-14'),
    registerDateStart: new Date('2022-10-09'),
    registerDateEnd: new Date('2022-11-30'),
    yearly: new Date('2022-01-01')
  },
  {
    id: '2',
    title: 'การสอบภาค ก. พิเศษ สำหรับผู้สอบผ่านของส่วนราชการแล้ว',
    registerRound: 1,
    announcementDate: new Date('2022-10-14'),
    registerDateStart: new Date('2022-10-09'),
    registerDateEnd: new Date('2022-11-30'),
    yearly: new Date('2022-01-01')
  }
]

const defaultAddress: Address = {
  address: 'บ้านเลขที่ 1/2 ซอย 56 ถนนตัดใหม่',
  provinceId: 'กรุงเทพ',
  districtId: 'หนองแขม',
  subdistrictId: 'หนองค้างพลู',
  code: 10160,
  addressC: 'บ้านเลขที่ 1/2 ซอย 56 ถนนตัดใหม่',
  provinceIdC: 'กรุงเทพ',
  districtIdC: 'หนองแขม',
  subdistrictIdC: 'หนองค้างพลู',
  codeC: 10160,
  same: '0'
}

const defaultInformation: Information = {
  cardid: '10238002345325',
  prefix: 'นางสาว',
  prefixId: 'นางสาว',
  firstname: 'ณัฐกา',
  lastname: 'ชมสิน',
  birthDate: new Date('2002-01-01'),
  genderId: 'หญิง',
  bloodId: 'O',
  nationality: 'ไทย',
  ethnicity: 'ไทย',
  religionId: 'พุทธ',
  tel: '0914569982',
  phone: '0914569982',
  email: 'kittapath@frappet.com',
  provinceId: 'กรุงเทพ',
  cardIdDate: new Date('2000-01-10'),
  statusId: 'โสด',
  knowledge: 'excel, word, photoshop'
}

const defaultFamily: Family = {
  prefixC: 'นาย',
  prefixIdC: 'นาย',
  firstnameC: 'ธนาคาร',
  lastnameC: 'กสิกร',
  occupationC: 'ว่าง',
  nationalityC: 'ไทย',
  prefixM: 'นาย',
  prefixIdM: 'นาย',
  firstnameM: 'ธนายุทธ',
  lastnameM: 'ชมสิน',
  occupationM: 'ว่าง',
  nationalityM: 'ไทย',
  prefixF: 'นางสาว',
  prefixIdF: 'นางสาว',
  firstnameF: 'ณัฐกาล',
  lastnameF: 'ชมสิน',
  occupationF: 'ว่าง',
  nationalityF: 'ไทย',
  same: '1'
}

const defaultOccupation: Occupation = {
  status: 'official',
  company: 'บริษัท ทรู คอร์ปอเรชั่น จำกัด (มหาชน)',
  department: '-',
  email: 'kittapath@frappet.com',
  tel: '0846464646',
  official: 'Direct Sales Staff',
  personnel: null,
  officialsOther: null,
  employee: null,
  other: null
}

export { defaultInformation, defaultFamily, defaultAddress, defaultOccupation, defaultCard }
export type {
  Pagination,
  DataOption,
  DataDateMonthObject,
  ChangeActive,
  Information,
  Family,
  Address,
  zipCodeOption,
  Occupation,
  ExamCard
}
