# Generated by Django 5.2.6 on 2025-10-01 21:41

import django.core.validators
import django.db.models.deletion
import jobs.models
import jobs.validators
import uuid
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='JobPosting',
            fields=[
                ('title', models.CharField(max_length=200)),
                ('department', models.CharField(blank=True, max_length=100)),
                ('job_type', models.CharField(choices=[('FULL_TIME', 'Full-time'), ('PART_TIME', 'Part-time'), ('CONTRACT', 'Contract'), ('INTERNSHIP', 'Internship'), ('FACULTY', 'Faculty'), ('TEMPORARY', 'Temporary')], default='FULL_TIME', max_length=20)),
                ('workplace_type', models.CharField(choices=[('ON_SITE', 'On-site'), ('REMOTE', 'Remote'), ('HYBRID', 'Hybrid')], default='ON_SITE', max_length=20)),
                ('location_city', models.CharField(blank=True, max_length=100)),
                ('location_state', models.CharField(blank=True, max_length=100)),
                ('location_country', models.CharField(default='United States', max_length=100)),
                ('description', models.TextField(help_text='Full job description including responsibilities and requirements')),
                ('qualifications', models.TextField(blank=True, help_text='Required qualifications and skills')),
                ('salary_range', models.CharField(blank=True, help_text='e.g., $60,000 - $80,000', max_length=100)),
                ('benefits', models.TextField(blank=True, help_text='Benefits offered')),
                ('application_url', models.URLField(help_text='URL where candidates apply', validators=[django.core.validators.URLValidator()])),
                ('application_deadline', models.DateField(blank=True, null=True)),
                ('application_instructions', models.TextField(blank=True, help_text='Special instructions for applicants')),
                ('internal_job_id', models.CharField(editable=False, max_length=50, primary_key=True, serialize=False)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('created_by', models.CharField(blank=True, help_text='Name of person who created this job', max_length=100)),
                ('status', models.CharField(choices=[('DRAFT', 'Draft'), ('ACTIVE', 'Active'), ('CLOSED', 'Closed'), ('ARCHIVED', 'Archived')], default='DRAFT', max_length=20)),
                ('linkedin_post_id', models.CharField(blank=True, help_text='LinkedIn post ID after posting', max_length=200)),
                ('linkedin_post_url', models.URLField(blank=True, help_text='Direct URL to LinkedIn post')),
                ('posted_to_linkedin', models.BooleanField(default=False)),
                ('linkedin_post_status', models.CharField(blank=True, help_text='Status of LinkedIn posting', max_length=50)),
                ('linkedin_posted_at', models.DateTimeField(blank=True, null=True)),
                ('position_number', models.CharField(blank=True, help_text='University position number', max_length=50)),
                ('reporting_to', models.CharField(blank=True, help_text='Who this position reports to', max_length=100)),
                ('start_date', models.DateField(blank=True, help_text='Desired start date', null=True)),
            ],
            options={
                'verbose_name': 'Job Posting',
                'verbose_name_plural': 'Job Postings',
                'ordering': ['-created_at'],
            },
        ),
        migrations.CreateModel(
            name='PostImageUpload',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
                ('linkedinpost_image', models.ImageField(blank=True, help_text='Image file (Max size: 2MB). Accepted formats: .png, .jpg, .jpeg', null=True, upload_to=jobs.models.image_file_name, validators=[jobs.validators.validate_image_size])),
                ('uploaded_at', models.DateTimeField(auto_now_add=True)),
                ('job_posting', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='files', to='jobs.jobposting')),
            ],
            options={
                'verbose_name': 'Job File',
                'verbose_name_plural': 'Job Files',
            },
        ),
    ]
