from flask_wtf import FlaskForm from wtforms import StringField, TextAreaField, SelectField from wtforms.validators import InputRequired, Email, Length, Optional, DataRequired class ContactForm(FlaskForm): nombre = StringField( "Nombre", validators=[InputRequired(message="Este campo es obligatorio"), Length(max=100, message="Máximo 100 caracteres")] ) apellido = StringField( "Apellido", validators=[InputRequired(message="Este campo es obligatorio"), Length(max=100, message="Máximo 100 caracteres")] ) email = StringField( "Email", validators=[InputRequired(message="Este campo es obligatorio"), Email(message="Ingresa un email válido"), Length(max=120)] ) estado = SelectField("Estado", choices=[ ("", ""), (1, 'Aguascalientes'), (2, 'Baja California'), (3, 'Baja California Sur'), (4, 'Campeche'), (5, 'Chiapas'), (6, 'Chihuahua'), (7, 'Ciudad de México'), (8, 'Coahuila'), (9, 'Colima'), (10, 'Durango'), (11, 'Estado de México'), (12, 'Guanajuato'), (13, 'Guerrero'), (14, 'Hidalgo'), (15, 'Jalisco'), (16, 'Michoacán'), (17, 'Morelos'), (18, 'Nayarit'), (19, 'Nuevo León'), (20, 'Oaxaca'), (21, 'Puebla'), (22, 'Querétaro'), (23, 'Quintana Roo'), (24, 'San Luis Potosí'), (25, 'Sinaloa'), (26, 'Sonora'), (27, 'Tabasco'), (28, 'Tamaulipas'), (29, 'Tlaxcala'), (30, 'Veracruz'), (31, 'Yucatán'), (32, 'Zacatecas') ], validators=[DataRequired(message="Debes seleccionar un estado.")],) num_tel = StringField( "Número telefónico", validators=[InputRequired(message="Número requerido"), Length(min=8, max=20, message="Número inválido")] ) size_co = SelectField( "Tamaño empresa", choices=[ ("", ""), ("1-10", "1 - 20"), ("10-50", "21 - 50"), ("50-100", "51 - 100"), ("101-149", "101 - 149"), ("150-500", "150 - 500"), ("501-799", "501 - 799"), ("800-5,000", "800 - 5,000"), ("5,000-10,000", "5,001 - 10,000"), ("10,000+", "10,000+") ], validators=[DataRequired(message="Debes seleccionar el tamaño de la empresa.")],) rol_contacto = SelectField( "Rol desempeñado", choices=[ ("", ""), (1, 'Capacitaciones'), (2, 'Gerente de Operaciones'), (3, 'Gerente de TI'), (4, 'Nómina'), (5, 'Desarrollo Organizacional'), (6, 'Reclutamiento y selección'), (7, 'Gerencia de Recursos Humanos'), (8, 'Finanzas / Gerencia'), (9, 'Dueño de mi propio negocio'), (10, 'Estudiante'), (11, 'Otro') ], validators=[DataRequired(message="Debes selecionar tu rol.")],) industry_type = SelectField( "Sector", choices=[ ("", ""), (1, 'Agricola'), (2, 'Alimentos'), (3, 'Automotriz'), (4, 'Comercio'), (5, 'Comunicaciones'), (6, 'Construcción'), (7, 'Consultora'), (8, 'Educación'), (9, 'Empresas B'), (10, 'Energia'), (11, 'Entretenimiento'), (12, 'Financiera'), (13, 'Fundación'), (14, 'Holding'), (15, 'Hoteleria'), (16, 'Legal'), (17, 'Logistica'), (18, 'Manufacturera'), (19, 'Marketing'), (20, 'Minera'), (21, 'Otra'), (22, 'Sector Público'), (23, 'Restoranes/Cafeteria'), (24, 'RRHH'), (25, 'Salud'), (26, 'Seguridad'), (27, 'Servicios'), (28, 'Tecnología'), (29, 'Transporte'), (30, 'Utilities (gas, agua, electricidad)') ], validators=[DataRequired(message="Selecione una propiedad.")],) tipo_req = TextAreaField( "Objetivo del contacto", validators=[InputRequired(message="Describe brevemente tu necesidad"), Length(min=10, max=500, message="Mínimo 10 caracteres, máximo 500")] )