From 11e2051e363fee837c15e2e7aa96d85d60546c42 Mon Sep 17 00:00:00 2001 From: Nikul Date: Tue, 11 Feb 2025 17:56:04 +0530 Subject: [PATCH 1/3] :sparkles: feat: Adds moch adhar card and pancard functionality for enin --- examples/mock_example.go | 15 +- .../entities/address/mocks/enin/cities.go | 227 ++++++++++++++++++ .../entities/address/mocks/enin/states.go | 33 +++ .../entities/address/mocks/enin/streets.go | 198 +++++++++++++++ .../entities/address/mocks/enin/zip_codes.go | 25 ++ .../entities/gender/mocks/enin/genders.go | 15 ++ .../person/mocks/enin/first_names_female.go | 28 +++ .../person/mocks/enin/first_names_male.go | 28 +++ .../entities/person/mocks/enin/last_names.go | 35 +++ .../entities/phone/mocks/enin/area_codes.go | 6 + pkg/mocai/helper/helper.go | 41 ++++ pkg/mocai/translations/en_in.go | 27 +++ pkg/mocai/translations/translations.go | 1 + 13 files changed, 677 insertions(+), 2 deletions(-) create mode 100644 pkg/mocai/entities/address/mocks/enin/cities.go create mode 100644 pkg/mocai/entities/address/mocks/enin/states.go create mode 100644 pkg/mocai/entities/address/mocks/enin/streets.go create mode 100644 pkg/mocai/entities/address/mocks/enin/zip_codes.go create mode 100644 pkg/mocai/entities/gender/mocks/enin/genders.go create mode 100644 pkg/mocai/entities/person/mocks/enin/first_names_female.go create mode 100644 pkg/mocai/entities/person/mocks/enin/first_names_male.go create mode 100644 pkg/mocai/entities/person/mocks/enin/last_names.go create mode 100644 pkg/mocai/entities/phone/mocks/enin/area_codes.go create mode 100644 pkg/mocai/helper/helper.go create mode 100644 pkg/mocai/translations/en_in.go diff --git a/examples/mock_example.go b/examples/mock_example.go index 694c8e9..66aa0be 100644 --- a/examples/mock_example.go +++ b/examples/mock_example.go @@ -7,12 +7,16 @@ import ( "github.com/brazzcore/mocai/pkg/mocai/entities/address" "github.com/brazzcore/mocai/pkg/mocai/entities/person" "github.com/brazzcore/mocai/pkg/mocai/entities/phone" + "github.com/brazzcore/mocai/pkg/mocai/helper" "github.com/brazzcore/mocai/pkg/mocai/translations" ) func GenerateMockExample() { - // Set the language to pt-BR - translations.SetLanguage("ptbr") + // set the language + var languageID string + fmt.Print("Enter your language : ") + fmt.Scan(&languageID) + translations.SetLanguage(languageID) //test for : ptbr,enin // Generate mock data person_mock, err := person.GeneratePerson() @@ -39,5 +43,12 @@ func GenerateMockExample() { address_mock.Street, address_mock.Number, address_mock.City, address_mock.State, address_mock.UF, address_mock.ZIP) fmt.Printf("Phone: (%s) %s\n", phone_mock.AreaCode, phone_mock.Number) + if languageID == "enin" { + aadhar_card := helper.GenerateAadhaarNumber() + pan_card := helper.GenerateRandomPAN() + fmt.Printf("Adhar card: %s\n", aadhar_card) + fmt.Printf("Pan card: %s", pan_card) + } + fmt.Println(constants.Footer) } diff --git a/pkg/mocai/entities/address/mocks/enin/cities.go b/pkg/mocai/entities/address/mocks/enin/cities.go new file mode 100644 index 0000000..d77d0a1 --- /dev/null +++ b/pkg/mocai/entities/address/mocks/enin/cities.go @@ -0,0 +1,227 @@ +package enin + +// Cities contains a list of 200 distinct cities names in india (excluding capitals). +var Cities = []string{ + "Mumbai", + "Delhi", + "Bangalore", + "Hyderabad", + "Ahmedabad", + "Chennai", + "Kolkata", + "Pune", + "Jaipur", + "Surat", + "Lucknow", + "Kanpur", + "Nagpur", + "Indore", + "Thane", + "Bhopal", + "Visakhapatnam", + "Patna", + "Vadodara", + "Ghaziabad", + "Ludhiana", + "Agra", + "Nashik", + "Ranchi", + "Faridabad", + "Meerut", + "Rajkot", + "Kalyan-Dombivli", + "Vasai-Virar", + "Varanasi", + "Srinagar", + "Aurangabad", + "Dhanbad", + "Amritsar", + "Navi Mumbai", + "Allahabad", + "Howrah", + "Gwalior", + "Jabalpur", + "Coimbatore", + "Vijayawada", + "Jodhpur", + "Madurai", + "Raipur", + "Kota", + "Guwahati", + "Chandigarh", + "Solapur", + "Hubli-Dharwad", + "Tiruchirappalli", + "Dehradun", + "Salem", + "Warangal", + "Thiruvananthapuram", + "Guntur", + "Bhiwandi", + "Saharanpur", + "Gorakhpur", + "Bikaner", + "Amravati", + "Noida", + "Jamshedpur", + "Bhilai", + "Cuttack", + "Firozabad", + "Kochi", + "Nellore", + "Bhavnagar", + "Dehri", + "Kurnool", + "Ajmer", + "Jhansi", + "Ujjain", + "Silchar", + "Jalandhar", + "Bilaspur", + "Thanjavur", + "Bellary", + "Muzaffarpur", + "Tirunelveli", + "Malegaon", + "Akola", + "Rajahmundry", + "Agartala", + "Bhagalpur", + "Latur", + "Durgapur", + "Korba", + "Dhule", + "Rourkela", + "Anantapur", + "Karimnagar", + "Etawah", + "Ambarnath", + "Bharatpur", + "Begusarai", + "New Delhi", + "Gandhinagar", + "Yamunanagar", + "Baranagar", + "Bhind", + "Shivpuri", + "Tumkur", + "Aligarh", + "Sikar", + "Udaipur", + "Bulandshahr", + "Sirsa", + "Moradabad", + "Shahjahanpur", + "Rampur", + "Kharagpur", + "Kishanganj", + "Maheshtala", + "Sambalpur", + "Bilimora", + "Tirupati", + "Bhiwani", + "Ratlam", + "Chhapra", + "Ujjain", + "Hardwar", + "Sitapur", + "Burhanpur", + "Bhatinda", + "Malda", + "Baripada", + "Satna", + "Chhindwara", + "Hosur", + "Katihar", + "Rewa", + "Nagaur", + "Chittoor", + "Bhadrak", + "Jagdalpur", + "Vidisha", + "Bidar", + "Porbandar", + "Ballia", + "Bhagalpur", + "Gaya", + "Darbhanga", + "Rohtak", + "Kollam", + "Bardhaman", + "Bankura", + "Barmer", + "Midnapore", + "Hazaribagh", + "Koraput", + "Balasore", + "Nagaon", + "Tinsukia", + "Dibrugarh", + "Jorhat", + "Bongaigaon", + "Tezpur", + "Sivasagar", + "Silchar", + "Imphal", + "Dimapur", + "Aizawl", + "Kohima", + "Itanagar", + "Agartala", + "Gangtok", + "Panaji", + "Shillong", + "Port Blair", + "Puducherry", + "Kavaratti", + "Daman", + "Silvassa", + "Dispur", + "Shillong", + "Muzaffarnagar", + "Bhuj", + "Amroha", + "Churu", + "Alwar", + "Jalgaon", + "Fatehpur", + "Sehore", + "Vidisha", + "Hajipur", + "Bhind", + "Chhatarpur", + "Khandwa", + "Daltonganj", + "Raigarh", + "Shahdol", + "Chandrapur", + "Parbhani", + "Sangli", + "Loni", + "Yavatmal", + "Satara", + "Jalna", + "Nanded", + "Hinganghat", + "Gondia", + "Bhusawal", + "Ichalkaranji", + "Betul", + "Raichur", + "Bagalkot", + "Chikmagalur", + "Davanagere", + "Mandya", + "Shivamogga", + "Tumkur", + "Kolar", + "Koppal", + "Hassan", + "Bijapur", + "Ballari", + "Gadag", + "Bidar", + "Karwar", + "Kodagu", + "Chamrajnagar", +} diff --git a/pkg/mocai/entities/address/mocks/enin/states.go b/pkg/mocai/entities/address/mocks/enin/states.go new file mode 100644 index 0000000..7a8f261 --- /dev/null +++ b/pkg/mocai/entities/address/mocks/enin/states.go @@ -0,0 +1,33 @@ +package enin + +// States contains a list of all indian states. +var States = []string{ + "Andhra Pradesh", + "Arunachal Pradesh", + "Assam", + "Bihar", + "Chhattisgarh", + "Goa", + "Gujarat", + "Haryana", + "Himachal Pradesh", + "Jharkhand", + "Karnataka", + "Kerala", + "Madhya Pradesh", + "Maharashtra", + "Manipur", + "Meghalaya", + "Mizoram", + "Nagaland", + "Odisha", + "Punjab", + "Rajasthan", + "Sikkim", + "Tamil Nadu", + "Telangana", + "Tripura", + "Uttar Pradesh", + "Uttarakhand", + "West Bengal", +} diff --git a/pkg/mocai/entities/address/mocks/enin/streets.go b/pkg/mocai/entities/address/mocks/enin/streets.go new file mode 100644 index 0000000..dfb4c90 --- /dev/null +++ b/pkg/mocai/entities/address/mocks/enin/streets.go @@ -0,0 +1,198 @@ +package enin + +// Streets contains a list of 200 distinct street names in india. +var Streets = []string{ + "MG Road", + "Brigade Road", + "Commercial Street", + "Linking Road", + "Park Street", + "Camac Street", + "Connaught Place", + "Rajpath", + "Janpath", + "Marine Drive", + "Lamington Road", + "Altamount Road", + "Peddar Road", + "Mount Road", + "Anna Salai", + "Cathedral Road", + "Ritchie Street", + "Residency Road", + "St. Mark's Road", + "Church Street", + "Bannerghatta Road", + "Jayanagar 4th Block", + "Indiranagar 100 Feet Road", + "Koramangala 80 Feet Road", + "Outer Ring Road", + "Sarjapur Road", + "Hosur Road", + "Electronic City Road", + "Whitefield Main Road", + "Golf Course Road", + "Sector 17 Plaza", + "Sector 35 Market Road", + "Dalhousie Road", + "Strand Road", + "Chowringhee Road", + "Esplanade Row", + "Salt Lake Sector V Road", + "Russell Street", + "Ballygunge Circular Road", + "AJC Bose Road", + "Rabindra Sarani", + "College Street", + "Sudder Street", + "Elgin Road", + "Chandni Chowk", + "Daryaganj Road", + "Karol Bagh Road", + "Lajpat Nagar Road", + "Khan Market Road", + "Hauz Khas Village Road", + "South Extension Road", + "Vasant Kunj Marg", + "Saket Select City Road", + "Greater Kailash M Block Road", + "Malviya Nagar Main Road", + "Defence Colony Main Road", + "Dwarka Sector 10 Road", + "Paschim Vihar Main Road", + "Rohini Sector 9 Road", + "Pitampura Main Road", + "Nariman Point Road", + "Kemp’s Corner", + "Bandra Hill Road", + "Pali Hill Road", + "Juhu Tara Road", + "Andheri Lokhandwala Road", + "SV Road", + "Malad Link Road", + "Goregaon Film City Road", + "Kandivali Thakur Village Road", + "Borivali L T Road", + "Sion-Panvel Expressway", + "Ghatkopar LBS Road", + "Chembur Diamond Garden Road", + "Vashi Palm Beach Road", + "Navi Mumbai Seawoods Road", + "Thane Ghodbunder Road", + "Kalyan Dombivli Shilphata Road", + "Chinchwad Link Road", + "JM Road", + "FC Road", + "Shivaji Road", + "Deccan Gymkhana Road", + "Koregaon Park Road", + "Kalyani Nagar Road", + "Baner Road", + "Hinjewadi IT Park Road", + "Magarpatta City Road", + "Camp MG Road", + "East Street", + "Sinhagad Road", + "Aundh Road", + "Warje Road", + "Kothrud Paud Road", + "Viman Nagar Road", + "Hadapsar Road", + "Dhole Patil Road", + "Karve Road", + "Nagar Road", + "Ambegaon Road", + "Porur Mount Road", + "Nungambakkam High Road", + "T Nagar Usman Road", + "Adyar LB Road", + "Anna Nagar 2nd Avenue", + "Velachery Main Road", + "OMR IT Corridor Road", + "Tambaram GST Road", + "Chromepet 100 Feet Road", + "Thoraipakkam Radial Road", + "Kilpauk Landons Road", + "Perambur Paper Mills Road", + "Pallavaram Pallikaranai Road", + "Guindy Race Course Road", + "Besant Nagar Beach Road", + "Thiruvanmiyur East Coast Road", + "Medavakkam Main Road", + "Royapettah Whites Road", + "Mylapore RK Salai", + "Egmore Pantheon Road", + "Chetpet Spurtank Road", + "Teynampet Greams Road", + "Vepery Poonamallee High Road", + "Parrys Armenian Street", + "Park Town Flower Bazaar Road", + "Rajaji Salai", + "Moore Market Road", + "Bangalore Avenue Road", + "Majestic Gandhinagar Main Road", + "MG Road Bangalore", + "UB City Vittal Mallya Road", + "Racecourse Road Bangalore", + "Indiranagar CMH Road", + "Marathahalli Outer Ring Road", + "Whitefield ITPL Road", + "Electronic City Hosur Road", + "Bannerghatta NICE Road", + "Koramangala 5th Block Road", + "Jayanagar 9th Block Road", + "Basavanagudi Bull Temple Road", + "JP Nagar 24th Main Road", + "Banashankari Kathriguppe Road", + "RT Nagar Main Road", + "HBR Layout Outer Ring Road", + "Yelahanka Doddaballapur Road", + "KR Puram Old Madras Road", + "Bellandur Sarjapur Road", + "Hennur Main Road", + "Ramamurthy Nagar Main Road", + "Nandini Layout 10th Main Road", + "Sanjay Nagar Main Road", + "Rajajinagar Dr. Rajkumar Road", + "Peenya Industrial Area Road", + "Mysore Road", + "Nelamangala Tumkur Road", + "Hoskote Whitefield Road", + "Yeshwanthpur Tumkur Road", + "Malleshwaram Sampige Road", + "Uttarahalli Main Road", + "Rajarajeshwari Nagar Main Road", + "Hulimavu Begur Road", + "Hosur Attibele Road", + "Sarjapur Carmelaram Road", + "Vijayanagar Chord Road", + "Mahadevapura Outer Ring Road", + "Nagavara Thanisandra Road", + "RT Nagar CBI Road", + "MG Road Kolkata", + "Park Street Kolkata", + "Elgin Road Kolkata", + "Salt Lake City Sector 5 Road", + "New Town Rajarhat Main Road", + "Esplanade Dharmatala Road", + "Ballygunge Circular Road", + "Alipore Road Kolkata", + "Gariahat Road", + "Tollygunge Prince Anwar Shah Road", + "Howrah Shibpur Road", + "Dum Dum Jessore Road", + "Jadavpur Raja SC Mullick Road", + "Garia Kamalgazi Road", + "Barrackpore Kalyani Expressway", + "Barasat Krishnanagar Road", + "Madhyamgram Badu Road", + "VIP Road Kolkata", + "Chowringhee Road Kolkata", + "Dalhousie Road Kolkata", + "Behala James Long Sarani", + "Baghajatin Road Kolkata", + "Dhakuria Road Kolkata", + "Maniktala Main Road", + "Ultadanga Road Kolkata", + "Sealdah BB Ganguly Street", +} diff --git a/pkg/mocai/entities/address/mocks/enin/zip_codes.go b/pkg/mocai/entities/address/mocks/enin/zip_codes.go new file mode 100644 index 0000000..bb0e1e7 --- /dev/null +++ b/pkg/mocai/entities/address/mocks/enin/zip_codes.go @@ -0,0 +1,25 @@ +package enin + +// ZIPCodes contains a list of 200 distinct indian ZIP codes. +var ZIPCodes = []string{ + "110001", "110002", "110003", "110004", "110005", "110006", "110007", "110008", "110009", "110010", + "400001", "400002", "400003", "400004", "400005", "400006", "400007", "400008", "400009", "400010", + "600001", "600002", "600003", "600004", "600005", "600006", "600007", "600008", "600009", "600010", + "700001", "700002", "700003", "700004", "700005", "700006", "700007", "700008", "700009", "700010", + "500001", "500002", "500003", "500004", "500005", "500006", "500007", "500008", "500009", "500010", + "560001", "560002", "560003", "560004", "560005", "560006", "560007", "560008", "560009", "560010", + "411001", "411002", "411003", "411004", "411005", "411006", "411007", "411008", "411009", "411010", + "380001", "380002", "380003", "380004", "380005", "380006", "380007", "380008", "380009", "380010", + "302001", "302002", "302003", "302004", "302005", "302006", "302007", "302008", "302009", "302010", + "462001", "462002", "462003", "462004", "462005", "462006", "462007", "462008", "462009", "462010", + "682001", "682002", "682003", "682004", "682005", "682006", "682007", "682008", "682009", "682010", + "751001", "751002", "751003", "751004", "751005", "751006", "751007", "751008", "751009", "751010", + "122001", "122002", "122003", "122004", "122005", "122006", "122007", "122008", "122009", "122010", + "144001", "144002", "144003", "144004", "144005", "144006", "144007", "144008", "144009", "144010", + "835001", "835002", "835003", "835004", "835005", "835006", "835007", "835008", "835009", "835010", + "793001", "793002", "793003", "793004", "793005", "793006", "793007", "793008", "793009", "793010", + "500081", "500082", "500083", "500084", "500085", "500086", "500087", "500088", "500089", "500090", + "201301", "201302", "201303", "201304", "201305", "201306", "201307", "201308", "201309", "201310", + "600100", "600101", "600102", "600103", "600104", "600105", "600106", "600107", "600108", "600109", + "700100", "700101", "700102", "700103", "700104", "700105", "700106", "700107", "700108", "700109", +} diff --git a/pkg/mocai/entities/gender/mocks/enin/genders.go b/pkg/mocai/entities/gender/mocks/enin/genders.go new file mode 100644 index 0000000..ca12bbf --- /dev/null +++ b/pkg/mocai/entities/gender/mocks/enin/genders.go @@ -0,0 +1,15 @@ +package enin + +var Genders = []string{ + "Male", + "Female", + "Transgender", + "Non-Binary", + "Third Gender", + "Genderqueer", + "Agender", + "Two-Spirit", + "Hijra", + "Aravani", + "Kothi", +} diff --git a/pkg/mocai/entities/person/mocks/enin/first_names_female.go b/pkg/mocai/entities/person/mocks/enin/first_names_female.go new file mode 100644 index 0000000..d5b33c5 --- /dev/null +++ b/pkg/mocai/entities/person/mocks/enin/first_names_female.go @@ -0,0 +1,28 @@ +package enin + +// FirstNameFemale contains a list of 200 distinct indian female first names. + +var FirstNamesFemale = []string{ + "Aaradhya", "Aarti", "Aashna", "Aditi", "Advika", "Aisha", "Akanksha", "Akshara", "Alisha", "Amara", + "Amisha", "Anaya", "Anika", "Anjali", "Ankita", "Anusha", "Anvi", "Arpita", "Arya", "Asha", + "Ayesha", "Bhavna", "Bhavya", "Bhumika", "Chandni", "Charulata", "Chhaya", "Damini", "Deepa", "Deepali", + "Devanshi", "Dhara", "Diksha", "Divya", "Drishti", "Durga", "Eesha", "Ekta", "Esha", "Falguni", + "Farah", "Garima", "Gayatri", "Geeta", "Gitanjali", "Hansa", "Harini", "Harshita", "Hema", "Hetal", + "Ira", "Isha", "Ishita", "Indira", "Janhvi", "Jaya", "Jhanvi", "Jigyasa", "Juhi", "Jyoti", + "Kadambini", "Kajal", "Kalpana", "Kamini", "Kanika", "Kashish", "Kavita", "Khushbu", "Kiran", "Kirti", + "Komal", "Kripa", "Krishna", "Krithika", "Kritika", "Lakshmi", "Lata", "Lavanya", "Laxmi", "Leela", + "Lipi", "Madhavi", "Madhumita", "Madhuri", "Mahima", "Malati", "Malini", "Manasi", "Manisha", "Meera", + "Meghna", "Mehak", "Menaka", "Mili", "Mira", "Mishti", "Mohini", "Mridula", "Muskan", "Nalini", + "Namita", "Nandini", "Navya", "Neelam", "Neha", "Nikita", "Nimisha", "Nisha", "Nishita", "Nithya", + "Noor", "Ojasvi", "Pallavi", "Padmini", "Pakhi", "Pari", "Parineeta", "Parul", "Payal", "Poonam", + "Pragati", "Prachi", "Pranjal", "Pratibha", "Preeti", "Preksha", "Priya", "Priti", "Priyanka", "Purnima", + "Pushpa", "Radha", "Rajeshwari", "Raksha", "Rani", "Rashmi", "Reema", "Rekha", "Renuka", "Riddhi", + "Ritika", "Riya", "Roopa", "Roopali", "Roshni", "Ruhi", "Rupali", "Saanvi", "Sadhana", "Sakshi", + "Saloni", "Samaira", "Sameeksha", "Sangeeta", "Sanika", "Sanjana", "Sapna", "Sara", "Sarita", "Seema", + "Shailee", "Sharvani", "Sharvya", "Sharini", "Sharvisha", "Sharvanya", "Shilpa", "Shivani", "Shraddha", "Shreya", + "Shrishti", "Shruti", "Simran", "Smita", "Sohini", "Sonal", "Sonali", "Soumya", "Srishti", "Suchitra", + "Sujata", "Sukanya", "Sumati", "Sumedha", "Suman", "Surbhi", "Sushma", "Swara", "Swati", "Tanisha", + "Tanya", "Tara", "Tarini", "Trisha", "Tulsi", "Uma", "Urmi", "Urvi", "Vaidehi", "Vaishali", + "Varsha", "Vasudha", "Vasundhara", "Vidhi", "Vidya", "Vimla", "Vinita", "Yamuna", "Yashasvi", "Yashika", + "Yogita", "Zara", "Zoya", +} diff --git a/pkg/mocai/entities/person/mocks/enin/first_names_male.go b/pkg/mocai/entities/person/mocks/enin/first_names_male.go new file mode 100644 index 0000000..4921a8f --- /dev/null +++ b/pkg/mocai/entities/person/mocks/enin/first_names_male.go @@ -0,0 +1,28 @@ +package enin + +// FirstNameMale contains a list of 200 distinct indian first names male. + +var FirstNamesMale = []string{ + "Aarav", "Aadesh", "Aadi", "Aakash", "Aarush", "Abhay", "Abhimanyu", "Abhinav", "Adarsh", "Aditya", + "Agastya", "Ajay", "Ajit", "Akash", "Akhil", "Alok", "Amar", "Amit", "Amrit", "Anand", + "Aniket", "Anirudh", "Anish", "Ankit", "Anmol", "Ansh", "Anshul", "Anup", "Arjun", "Arnav", + "Aryan", "Ashish", "Ashok", "Ashwin", "Atul", "Avinash", "Ayush", "Bharat", "Bhaskar", "Bhavesh", + "Chandan", "Charan", "Chetan", "Chirag", "Daksh", "Darshan", "Deepak", "Dev", "Devansh", "Dharmesh", + "Dheeraj", "Dilip", "Divyansh", "Dushyant", "Eeshan", "Ekansh", "Eshan", "Ganesh", "Gaurav", "Girish", + "Govind", "Gulshan", "Gyan", "Harish", "Harshal", "Harshavardhan", "Hemant", "Himanshu", "Hrithik", "Inder", + "Indrajeet", "Ishaan", "Jagdish", "Jai", "Jaideep", "Jatin", "Jeet", "Jignesh", "Jitendra", "Kailash", + "Kamal", "Karan", "Kartik", "Keshav", "Ketan", "Kiran", "Kishan", "Krish", "Krishna", "Kuldeep", + "Kunal", "Laksh", "Lakshay", "Lalit", "Laxman", "Lokesh", "Madhav", "Mahesh", "Manav", "Manish", + "Manoj", "Mihir", "Mithun", "Mohan", "Mukul", "Mukund", "Nandan", "Narayan", "Naveen", "Nayan", + "Neeraj", "Nihal", "Nikhil", "Niraj", "Nirav", "Om", "Omkar", "Pankaj", "Parag", "Param", + "Paras", "Parth", "Prabhat", "Pradeep", "Praful", "Prakash", "Pranav", "Pranay", "Pratik", "Prem", + "Preet", "Punit", "Pushkar", "Raghav", "Rajat", "Rajeev", "Rajesh", "Rajiv", "Rajkumar", "Rakesh", + "Ranbir", "Ranjan", "Ravi", "Ravindra", "Rishi", "Ritwik", "Rohit", "Roshan", "Rudra", "Sachin", + "Sagar", "Sahil", "Saket", "Sameer", "Sandeep", "Sanjay", "Sanjeev", "Sanket", "Sarang", "Sarvesh", + "Satyam", "Saurabh", "Shaan", "Sharad", "Sharvil", "Shaurya", "Shiv", "Shivam", "Shobhit", "Shourya", + "Shravan", "Shrey", "Shreyas", "Shubham", "Shyam", "Siddharth", "Somesh", "Sourav", "Subhash", "Sudhir", + "Suhas", "Sumeet", "Sumer", "Sumeer", "Sumit", "Sunil", "Suresh", "Surya", "Sushant", "Swaroop", + "Tarun", "Tejas", "Trilok", "Tushar", "Uday", "Ujjwal", "Umang", "Upendra", "Utsav", "Vaibhav", + "Varun", "Vatsal", "Veer", "Vedant", "Veerendra", "Vicky", "Vidur", "Vikas", "Vikram", "Vimal", + "Vinay", "Vinod", "Viraj", "Viren", "Vishal", "Vishesh", "Vishnu", "Vivek", "Yash", "Yug", +} diff --git a/pkg/mocai/entities/person/mocks/enin/last_names.go b/pkg/mocai/entities/person/mocks/enin/last_names.go new file mode 100644 index 0000000..6cd797f --- /dev/null +++ b/pkg/mocai/entities/person/mocks/enin/last_names.go @@ -0,0 +1,35 @@ +package enin + +// LastNames contains a list of 300 distinct english last names. +var LastNames = []string{ + "Agarwal", "Ahluwalia", "Ahuja", "Aiyer", "Akhil", "Amarnath", "Anand", "Apte", "Arora", "Arya", + "Asopa", "Atwal", "Babu", "Badal", "Bagchi", "Bahadur", "Baig", "Bajpai", "Baksi", "Balakrishnan", + "Balasubramanian", "Banerjee", "Bansal", "Barua", "Basak", "Basu", "Batra", "Baviskar", "Bedi", "Behari", + "Bhagat", "Bhalla", "Bhandari", "Bhargava", "Bhat", "Bhatia", "Bhattacharya", "Bhavsar", "Bhonsle", "Biswas", + "Bommakanti", "Bose", "Chadha", "Chakraborty", "Chand", "Chandel", "Chandran", "Chatterjee", "Chaudhary", "Chaudhuri", + "Chavan", "Chawla", "Chopra", "Choudhary", "Chowdhury", "Chowta", "Dalal", "Dalvi", "Das", "Dasgupta", + "Datta", "Dayal", "Desai", "Deshpande", "Devan", "Dewan", "Dhaliwal", "Dhar", "Dhawan", "Dholakia", + "Dixit", "Dubey", "Dutta", "Dwivedi", "Gade", "Gahlot", "Gajjar", "Ganguly", "Garg", "Ghosh", + "Gogoi", "Goel", "Gokhale", "Gopal", "Goswami", "Gounder", "Goyal", "Grewal", "Guha", "Gulati", + "Gupta", "Gurung", "Halder", "Hegde", "Hora", "Iyer", "Iyengar", "Jadhav", "Jagannathan", "Jain", + "Jaiswal", "Jaswal", "Jatav", "Jayaram", "Jha", "Jhaveri", "Joshi", "Juyal", "Kadakia", "Kadam", + "Kalita", "Kamat", "Kamboj", "Kannan", "Kansal", "Kapur", "Kashyap", "Katta", "Kaul", "Kazi", + "Keswani", "Khanna", "Khatri", "Khosa", "Khurana", "Kohli", "Kolhe", "Konda", "Kondapalli", "Kothari", + "Krishna", "Kulkarni", "Kumar", "Kundra", "Kurup", "Lal", "Laxman", "Lele", "Lodha", "Lohar", + "Mahajan", "Mahal", "Mahanta", "Mahapatra", "Mahato", "Maheshwari", "Majumdar", "Malhotra", "Malik", "Malpani", + "Mani", "Manohar", "Manwani", "Marathe", "Mathur", "Meena", "Mehta", "Menon", "Mishra", "Mittal", + "Mohan", "Mohanty", "Mookerjee", "Mukerji", "Mukhopadhyay", "Mullapudi", "Mundhra", "Muralidharan", "Murthy", "Nadkarni", + "Nair", "Naqvi", "Narayanan", "Narang", "Narvekar", "Natarajan", "Nath", "Nayak", "Nayar", "Nigam", + "Nikam", "Nimbalkar", "Nischal", "Ojha", "Pachauri", "Padmanabhan", "Pal", "Panchal", "Pandey", "Pandit", + "Panicker", "Panse", "Panja", "Parashar", "Parekh", "Parikh", "Patel", "Pathak", "Patil", "Pattanayak", + "Paul", "Pawar", "Pillai", "Poddar", "Prajapati", "Prasad", "Purohit", "Purushothaman", "Radhakrishnan", "Rai", + "Raj", "Rajan", "Rajguru", "Rajput", "Ramakrishnan", "Raman", "Ramesh", "Rana", "Rangarajan", "Ranjan", + "Rao", "Rastogi", "Rathi", "Raval", "Rawal", "Ray", "Reddy", "Roy", "Sahni", "Sahu", + "Salgaonkar", "Samanta", "Sampath", "Samudrala", "Sane", "Sankaran", "Sapru", "Sardesai", "Sarin", "Sastry", + "Sekhon", "Sen", "Sengupta", "Sequeira", "Seth", "Shah", "Shanbhag", "Sharad", "Sharma", "Shekhar", + "Shetty", "Shinde", "Shroff", "Siddiqui", "Sikdar", "Singh", "Singhal", "Sodhi", "Soman", "Soni", + "Sood", "Srinivas", "Srinivasan", "Subramanian", "Sudhakar", "Sundaram", "Surana", "Swain", "Talwar", "Tambe", + "Tandon", "Tendulkar", "Thakur", "Thampi", "Thapar", "Thirumalai", "Tiwari", "Trivedi", "Udhas", "Upadhyay", + "Uppal", "Uttamchandani", "Vaidya", "Vaishnav", "Vasudevan", "Venkatesan", "Venkatesh", "Verma", "Viswanathan", "Wadhwa", + "Wagle", "Warrier", "Yadav", "Yagnik", "Yashpal", +} diff --git a/pkg/mocai/entities/phone/mocks/enin/area_codes.go b/pkg/mocai/entities/phone/mocks/enin/area_codes.go new file mode 100644 index 0000000..c1601d7 --- /dev/null +++ b/pkg/mocai/entities/phone/mocks/enin/area_codes.go @@ -0,0 +1,6 @@ +package enin + +// AreaCode contains a list of all Brazilian telephone area codes. +var AreaCodes = []string{ + "91", +} diff --git a/pkg/mocai/helper/helper.go b/pkg/mocai/helper/helper.go new file mode 100644 index 0000000..48f4a06 --- /dev/null +++ b/pkg/mocai/helper/helper.go @@ -0,0 +1,41 @@ +package helper + +import ( + "math/rand" + "strconv" + "time" +) + +// Generate a random Aadhaar number +func GenerateAadhaarNumber() string { + rand.Seed(time.Now().UnixNano()) + aadhaar := "" + + for i := 0; i < 12; i++ { + aadhaar += strconv.Itoa(rand.Intn(10)) + } + return aadhaar +} + +// Function to generate a random PAN number +func GenerateRandomPAN() string { + var letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + var digits = "0123456789" + rand.Seed(time.Now().UnixNano()) + + // Generate first 5 letters + pan := "" + for i := 0; i < 5; i++ { + pan += string(letters[rand.Intn(len(letters))]) + } + + // Generate 4 digits + for i := 0; i < 4; i++ { + pan += string(digits[rand.Intn(len(digits))]) + } + + // Generate last letter + pan += string(letters[rand.Intn(len(letters))]) + + return pan +} diff --git a/pkg/mocai/translations/en_in.go b/pkg/mocai/translations/en_in.go new file mode 100644 index 0000000..b8e86f3 --- /dev/null +++ b/pkg/mocai/translations/en_in.go @@ -0,0 +1,27 @@ +package translations + +import ( + "math/rand" + + address_mocks "github.com/brazzcore/mocai/pkg/mocai/entities/address/mocks/enin" + gender_mocks "github.com/brazzcore/mocai/pkg/mocai/entities/gender/mocks/enin" + person_mocks "github.com/brazzcore/mocai/pkg/mocai/entities/person/mocks/enin" + phone_mocks "github.com/brazzcore/mocai/pkg/mocai/entities/phone/mocks/enin" +) + +func init() { + // Choose a random state + state := address_mocks.States[rand.Intn(len(address_mocks.States))] + + Register("enin", map[string]string{ + "person_first_name_male": person_mocks.FirstNamesMale[rand.Intn(len(person_mocks.FirstNamesMale))], + "person_first_name_female": person_mocks.FirstNamesFemale[rand.Intn(len(person_mocks.FirstNamesFemale))], + "person_last_name": person_mocks.LastNames[rand.Intn(len(person_mocks.LastNames))], + "gender": gender_mocks.Genders[rand.Intn(len(gender_mocks.Genders))], + "address_street": address_mocks.Streets[rand.Intn(len(address_mocks.Streets))], + "address_city": address_mocks.Cities[rand.Intn(len(address_mocks.Cities))], + "address_state": state, + "address_zip": address_mocks.ZIPCodes[rand.Intn(len(address_mocks.ZIPCodes))], + "phone_area_code": phone_mocks.AreaCodes[rand.Intn(len(phone_mocks.AreaCodes))], + }) +} diff --git a/pkg/mocai/translations/translations.go b/pkg/mocai/translations/translations.go index 84a0265..7196af8 100644 --- a/pkg/mocai/translations/translations.go +++ b/pkg/mocai/translations/translations.go @@ -40,6 +40,7 @@ func SetLanguage(lang string) error { return fmt.Errorf("%w: %s", ErrUnsupportedLanguage, lang) } currentLang = lang + fmt.Println("current language ", currentLang) return nil } From 26aff367ab576e0b8c2d1e69862f58a4d212fcad Mon Sep 17 00:00:00 2001 From: Nikul Date: Tue, 11 Feb 2025 18:04:33 +0530 Subject: [PATCH 2/3] :sparkles: feat: Adds moch adhar card and pancard functionality for enin --- pkg/mocai/helper/helper.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/pkg/mocai/helper/helper.go b/pkg/mocai/helper/helper.go index 48f4a06..cbc1b26 100644 --- a/pkg/mocai/helper/helper.go +++ b/pkg/mocai/helper/helper.go @@ -8,11 +8,12 @@ import ( // Generate a random Aadhaar number func GenerateAadhaarNumber() string { - rand.Seed(time.Now().UnixNano()) + src := rand.NewSource(time.Now().UnixNano()) + rng := rand.New(src) aadhaar := "" for i := 0; i < 12; i++ { - aadhaar += strconv.Itoa(rand.Intn(10)) + aadhaar += strconv.Itoa(rng.Intn(10)) } return aadhaar } @@ -21,21 +22,23 @@ func GenerateAadhaarNumber() string { func GenerateRandomPAN() string { var letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" var digits = "0123456789" - rand.Seed(time.Now().UnixNano()) + // Create a new source and random generator + src := rand.NewSource(time.Now().UnixNano()) + rng := rand.New(src) // Generate first 5 letters pan := "" for i := 0; i < 5; i++ { - pan += string(letters[rand.Intn(len(letters))]) + pan += string(letters[rng.Intn(len(letters))]) } // Generate 4 digits for i := 0; i < 4; i++ { - pan += string(digits[rand.Intn(len(digits))]) + pan += string(digits[rng.Intn(len(digits))]) } // Generate last letter - pan += string(letters[rand.Intn(len(letters))]) + pan += string(letters[rng.Intn(len(letters))]) return pan } From 78fcac5a2ba62a1c2a5e06700757ff9120f5a743 Mon Sep 17 00:00:00 2001 From: Nikul Date: Wed, 12 Feb 2025 17:20:47 +0530 Subject: [PATCH 3/3] fix: Fixes function of adhar card and pan card function for enin --- examples/mock_example.go | 7 ++++--- pkg/mocai/entities/adhar/generator.go | 19 +++++++++++++++++++ .../helper.go => entities/pan/generator.go} | 15 +-------------- 3 files changed, 24 insertions(+), 17 deletions(-) create mode 100644 pkg/mocai/entities/adhar/generator.go rename pkg/mocai/{helper/helper.go => entities/pan/generator.go} (68%) diff --git a/examples/mock_example.go b/examples/mock_example.go index 66aa0be..17dddb3 100644 --- a/examples/mock_example.go +++ b/examples/mock_example.go @@ -5,9 +5,10 @@ import ( "github.com/brazzcore/mocai/pkg/mocai/constants" "github.com/brazzcore/mocai/pkg/mocai/entities/address" + "github.com/brazzcore/mocai/pkg/mocai/entities/adhar" + "github.com/brazzcore/mocai/pkg/mocai/entities/pan" "github.com/brazzcore/mocai/pkg/mocai/entities/person" "github.com/brazzcore/mocai/pkg/mocai/entities/phone" - "github.com/brazzcore/mocai/pkg/mocai/helper" "github.com/brazzcore/mocai/pkg/mocai/translations" ) @@ -44,8 +45,8 @@ func GenerateMockExample() { fmt.Printf("Phone: (%s) %s\n", phone_mock.AreaCode, phone_mock.Number) if languageID == "enin" { - aadhar_card := helper.GenerateAadhaarNumber() - pan_card := helper.GenerateRandomPAN() + aadhar_card := adhar.GenerateAadhaarNumber() + pan_card := pan.GenerateRandomPAN() fmt.Printf("Adhar card: %s\n", aadhar_card) fmt.Printf("Pan card: %s", pan_card) } diff --git a/pkg/mocai/entities/adhar/generator.go b/pkg/mocai/entities/adhar/generator.go new file mode 100644 index 0000000..519a777 --- /dev/null +++ b/pkg/mocai/entities/adhar/generator.go @@ -0,0 +1,19 @@ +package adhar + +import ( + "math/rand" + "strconv" + "time" +) + +// Generate a random Aadhaar number +func GenerateAadhaarNumber() string { + src := rand.NewSource(time.Now().UnixNano()) + rng := rand.New(src) + aadhaar := "" + + for i := 0; i < 12; i++ { + aadhaar += strconv.Itoa(rng.Intn(10)) + } + return aadhaar +} diff --git a/pkg/mocai/helper/helper.go b/pkg/mocai/entities/pan/generator.go similarity index 68% rename from pkg/mocai/helper/helper.go rename to pkg/mocai/entities/pan/generator.go index cbc1b26..ab15014 100644 --- a/pkg/mocai/helper/helper.go +++ b/pkg/mocai/entities/pan/generator.go @@ -1,23 +1,10 @@ -package helper +package pan import ( "math/rand" - "strconv" "time" ) -// Generate a random Aadhaar number -func GenerateAadhaarNumber() string { - src := rand.NewSource(time.Now().UnixNano()) - rng := rand.New(src) - aadhaar := "" - - for i := 0; i < 12; i++ { - aadhaar += strconv.Itoa(rng.Intn(10)) - } - return aadhaar -} - // Function to generate a random PAN number func GenerateRandomPAN() string { var letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"