Spaces:
Build error
Build error
| from pydantic import BaseModel, Field | |
| from typing import List | |
| class PersonalDetails(BaseModel): | |
| name: str = Field(description="Full name of the applicant") | |
| dob: str = Field(description="Date of birth in 'DD Month YYYY' format") | |
| nationality: str = Field(description="Nationality") | |
| occupation: str = Field(description="Current job title or occupation") | |
| passport_number: str = Field(description="Passport number") | |
| class GroupMember(BaseModel): | |
| name: str | |
| relationship: str | |
| dob: str | |
| occupation: str | |
| nationality: str | |
| passport_number: str | |
| class SchengenVisaData(BaseModel): | |
| personal_details: PersonalDetails | |
| group_members: List[GroupMember] = Field(default_factory=list) | |
| # Trip Details | |
| country: str = Field(description="The specific Schengen country embassy (e.g. France, Italy)") | |
| main_dest: str = Field(description="Main destination country") | |
| other_destinations: str = Field(description="Comma separated list of other countries, if any", default="") | |
| purpose: str = Field(description="Purpose of travel (Tourism, Business, Family Visit)") | |
| event: str = Field(description="Specific event (e.g. 'holiday', 'business meeting')") | |
| trip_highlight: str = Field(description="A short highlight (e.g., 'visiting the Eiffel Tower')") | |
| # Dates & Duration | |
| start: str = Field(description="Travel start date in 'DD Month YYYY'") | |
| end: str = Field(description="Travel end date in 'DD Month YYYY'") | |
| duration: str = Field(description="Total duration string (e.g., '10 days and 9 nights')") | |
| # Contact & Financial | |
| contact_email: str | |
| contact_phone: str | |
| job_commitment: str = Field(description="Professional sentence about returning to job") | |
| financial_status: str = Field(description="Financial standing", default="sound") | |
| class JapanVisaData(BaseModel): | |
| name: str = Field(description="Full name of the applicant") | |
| address: str = Field(description="Current residential address (street, number, unit)") | |
| city: str = Field(description="City of residence") | |
| postal_code: str = Field(description="Postal code of residence") | |
| email: str = Field(description="Applicant's email address") | |
| phone: str = Field(description="Applicant's phone number (format: +62...)") | |
| class HousewifeStatementData(BaseModel): | |
| applicant_name: str = Field(description="Full name of the housewife (applicant)") | |
| applicant_dob: str = Field(description="Applicant's Place and Date of Birth (e.g. 'Jakarta, 12 January 1980')") | |
| applicant_passport: str = Field(description="Applicant's Passport Number") | |
| sponsor_name: str = Field(description="Name of the husband/sponsor") | |
| sponsor_bank_details: str = Field(description="Sponsor's Bank Name and Account Number") | |
| destination_country: str = Field(description="Country being visited") | |
| visa_type: str = Field(description="Type of visa (e.g. 'Tourist', 'Visitor')") | |
| visit_end_date: str = Field(description="Date the trip ends") | |
| travel_companions: str = Field(description="Who the applicant is traveling with (e.g. 'my husband', 'my family')") | |
| letter_location: str = Field(description="City where the letter is signed (usually applicant's residence)") | |
| class SponsorshipLetterData(BaseModel): | |
| # Sponsor Details | |
| sponsor_name: str = Field(description="Full name of the sponsor") | |
| sponsor_address: str = Field(description="Sponsor's full address") | |
| sponsor_postal_code: str = Field(description="Sponsor's postal code") | |
| sponsor_email: str = Field(description="Sponsor's email address") | |
| sponsor_contact_number: str = Field(description="Sponsor's phone number") | |
| # Applicant Details | |
| applicant_name: str = Field(description="Full name of the applicant being sponsored") | |
| applicant_dob: str = Field(description="Applicant's Date of Birth (e.g. '12 January 1990')") | |
| applicant_passport_no: str = Field(description="Applicant's Passport Number") | |
| # Embassy/Visa Details | |
| officer_title: str = Field(description="Title of the officer (e.g. 'The Visa Officer')", default="The Visa Officer") | |
| embassy_name: str = Field(description="Name of the Embassy (e.g. 'Embassy of United Kingdom')") | |
| embassy_address: str = Field(description="Street Address of the Embassy") | |
| embassy_city_state_postal: str = Field(description="City, State, and Postal Code of the Embassy") | |
| # Visit Details | |
| visa_name: str = Field(description="Name of the Visa (e.g. 'Tourist Visa', 'Visitor Visa')") | |
| sponsor_relationship: str = Field(description="Relationship to applicant (e.g. 'Father', 'Friend', 'Employer')") | |
| visit_reason: str = Field(description="Short reason for visit (e.g. 'tourism', 'attend graduation')") | |
| destination_country: str = Field(description="Country being visited") | |
| visit_start_date: str = Field(description="Start date of visit") | |
| visit_end_date: str = Field(description="End date of visit") | |
| visit_purpose_details: str = Field(description="Detailed purpose (e.g. 'to spend summer holidays together')") |