import { FormControl } from '@angular/forms';
import { Country, Jaati, ProfessionList, Sampraday } from './common';

export interface LoginForm {
    phoneCode: FormControl<Country>;
    phoneNumber: FormControl<string>;
}

export interface SignupForm {
    name: FormControl<string>;
    countryCode: FormControl<string>;
    mobileNumber: FormControl<string>;
    dharma: FormControl<string>;
}

export interface JoinSanghForm {
    joinType: FormControl<string>;
    roleName: FormControl<string>;
}

export interface ReportForm {
    type: FormControl<number>;
    reported_for: FormControl<string>;
    subject: FormControl<string | null>;
    description: FormControl<string | null>;
}

export interface SanghAddressForm {
    address: FormControl<string>;
    city: FormControl<string>;
    state: FormControl<string>;
    email: FormControl<string>;
    apartment_name: FormControl<string>;
    mobile_number: FormControl<string>;
    phoneCode: FormControl<Country>;
    sangh_website: FormControl<string>;
    number_of_members: FormControl<number>;
    longitude: FormControl<string>;
    latitude: FormControl<string>;
    about: FormControl<string>;
}

export interface SanghInformationForm {
    sangh_type: FormControl<string>;
    name: FormControl<string>;
    dharma_id: FormControl<number>;
    sampraday_id: FormControl<Sampraday>;
    reg_number: FormControl<string>;
    reg_date: FormControl<string>;
    address: FormControl<string>;
    city: FormControl<string>;
    pincode: FormControl<number>;
    longitude: FormControl<string>;
    latitude: FormControl<string>;
    about: FormControl<string>;
    mulnayak_bhagwan_name?: FormControl<string>;
    type_of_template?: FormControl<number>;
}

export interface SanghFacilitiesForm {
    aaradhana_bhavan_status: FormControl<number>;
    pathshala_status: FormControl<number>;
    no_of_students: FormControl<number>;
    library_status: FormControl<number>;
    library_name: FormControl<string>;
    librarian_name: FormControl<string>;
    librarian_mobile_number: FormControl<string>;
    phoneCode: FormControl<Country>;
    number_of_books: FormControl<number>;
    tifin_service_status: FormControl<number>;
    bhojanshala_status: FormControl<number>;
    aayambilshala_status: FormControl<number>;
    mahila_mandal_status: FormControl<number>;
    yuva_mandal_status: FormControl<number>;
    swapna_chadawa_organised_status: FormControl<number>;
}

export interface SanghDonationForm {
    bank_account_number: FormControl<number>;
    bank_ifsc: FormControl<number>;
    bank_branch: FormControl<string>;
    bank_upi_id: FormControl<string>;
    bank_qr_code_url: FormControl<string>;
    bank_qr_code: FormControl<Blob>;
    bank_account_holder_name: FormControl<string>;
}

export interface SanghMemberForm {
    fullName: FormControl<string>;
    address: FormControl<string>;
    profile: FormControl<Blob>;
    memberId: FormControl<string>;
    profile_url: FormControl<string>;
}

export interface DikshaInformationForm {
    diksha_date: FormControl<string>;
    diksha_place: FormControl<string>;
    diksha_place_latitude: FormControl<string>;
    diksha_place_longitude: FormControl<string>;
    guru: FormControl<string>;
    guru_id: FormControl<string>;
}

export interface SansarikJeevanInformationForm {
    father_name: FormControl<string>;
    father_id: FormControl<string>;
    father_type: FormControl<string>;
    mother_name: FormControl<string>;
    mother_id: FormControl<string>;
    mother_type: FormControl<string>;
    about: FormControl<string>;
}

export interface ChaturmasInfoForm {
    chaturmasPlace: FormControl<string>;
    sanghId: FormControl<string>;
    sanghName: FormControl<string>;
    chaturmasYear: FormControl<string>;
}

export interface SantInformationForm {
    name: FormControl<string>;
    honor: FormControl<any[]>;
    dharma_id: FormControl<string>;
    sampraday_id: FormControl<Sampraday>;
    birth_date: FormControl<string>;
    gender: FormControl<string>;
}

export interface ViharInfoForm {
    viharFromPlace: FormControl<string>;
    viharToPlace: FormControl<string>;
    startDate: FormControl<string>;
    startTime: FormControl<string>;
}

export interface UserEducationForm {
    schoolName: FormControl<string>;
    aboutUser: FormControl<string>;
}

export interface UserInformationForm {
    fullName: FormControl<string>;
    relationship: FormControl<string>;
    birthDate: FormControl<string>;
}

export interface ContactForm {
    country_code: FormControl<Country>;
    mobile: FormControl<string>;
    mobile_privacy: FormControl<number | string>;
    email: FormControl<string>;
    email_privacy: FormControl<number | string>;
    otp: FormControl<string>;
}

export interface CollegeForm {
    qualification_id: FormControl<number | string>;
    type: FormControl<string>;
    university: FormControl<string>;
    qualification: FormControl<string>;
    is_graduate: FormControl<number | boolean>;
    passing_year: FormControl<string>;
    privacy: FormControl<number>;
}

export interface HighSchoolForm {
    qualification_id: FormControl<number | string>;
    type: FormControl<string>;
    highschool: FormControl<string>;
    qualification: FormControl<string>;
    passing_year: FormControl<number | string>;
    privacy: FormControl<number>;
}

export interface FamilyForm {
    memberName: FormControl<string>;
    relation: FormControl<string>;
    relationPrivacy: FormControl<number | string>;
}

export interface LocationForm {
    location: FormControl<string>;
    location_privacy: FormControl<number | string>;
    native_place: FormControl<string>;
    native_place_privacy: FormControl<number | string>;
}

export interface BasicInfoForm {
    name: FormControl<string>;
    gender: FormControl<string>;
    gender_privacy: FormControl<number | string>;
    birth_date: FormControl<string>;
    birth_date_privacy: FormControl<number | string>;
    mother_tongue: FormControl<number>;
    mother_tongue_privacy: FormControl<number | string>;
    jati: FormControl<Jaati>;
    jati_privacy: FormControl<number | string>;
    dharma: FormControl<number>;
    dharma_privacy: FormControl<number | string>;
    blood_group: FormControl<number>;
    blood_group_privacy: FormControl<number>;
    marital_status: FormControl<string>;
    marital_status_privacy: FormControl<number | string>;
    marriage_anniversary: FormControl<string>;
    marriage_anniversary_privacy: FormControl<number | string>;
}

export interface WorkForm {
    work_id: FormControl<string | number>;
    company_name: FormControl<string>;
    company_name_privacy: FormControl<number>;
    profession_id: FormControl<ProfessionList>;
    profession_privacy: FormControl<number>;
    profession: FormControl<string>;
    profession_speciality: FormControl<string>;
    profession_speciality_privacy: FormControl<string | number>;
    position: FormControl<string>;
    position_privacy: FormControl<number>;
    website: FormControl<string>;
    website_privacy: FormControl<number>;
    city: FormControl<string>;
    city_privacy: FormControl<number>;
    about: FormControl<string>;
    about_privacy: FormControl<number>;
    is_working: FormControl<string | boolean>;
    work_duration_privacy: FormControl<number>;
    start_year: FormControl<string>;
    end_year: FormControl<string>;
}

export interface SantProfileImageForm {
    avatar: FormControl<Blob>;
}

export interface SanghProfileImageForm {
    avatar: FormControl<Blob>;
}

export interface CertificateForm {
    hospital: FormControl<string>;
    fullName: FormControl<string>;
    email: FormControl<string>;
    address: FormControl<string>;
    aadharNumber: FormControl<string>;
    medicalDescription: FormControl<string>;
}

export interface CertificateTermConditionForm {
    termCondition: FormControl<boolean>;
}