# Generated by Django 5.2.1 on 2025-08-14 11:46

import django.db.models.deletion
import simple_history.models
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('account', '0136_courseshooting_historicalcourseshooting'),
    ]

    operations = [
        migrations.CreateModel(
            name='APR',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('created_at', models.DateTimeField(auto_now_add=True, null=True)),
                ('updated_at', models.DateTimeField(auto_now=True, null=True)),
                ('year', models.PositiveIntegerField()),
                ('obesity', models.CharField(blank=True, max_length=55, null=True)),
                ('sickness', models.CharField(blank=True, choices=[(1, 'Yes'), (2, 'No')], max_length=55, null=True)),
                ('sickness_from', models.DateField(blank=True, null=True)),
                ('sickness_to', models.DateField(blank=True, null=True)),
                ('sickness_remarks', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_resp_1', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_from_1', models.DateField(blank=True, null=True)),
                ('part_3_to_1', models.DateField(blank=True, null=True)),
                ('part_3_duration_1', models.PositiveIntegerField(blank=True, null=True)),
                ('part_3_unit_1', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_imm_reporting_1', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_reporting_offr_1', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_resp_2', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_from_2', models.DateField(blank=True, null=True)),
                ('part_3_to_2', models.DateField(blank=True, null=True)),
                ('part_3_duration_2', models.PositiveIntegerField(blank=True, null=True)),
                ('part_3_unit_2', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_imm_reporting_2', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_reporting_offr_2', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_resp_3', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_from_3', models.DateField(blank=True, null=True)),
                ('part_3_to_3', models.DateField(blank=True, null=True)),
                ('part_3_duration_3', models.PositiveIntegerField(blank=True, null=True)),
                ('part_3_unit_3', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_imm_reporting_3', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_reporting_offr_3', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_resp_4', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_from_4', models.DateField(blank=True, null=True)),
                ('part_3_to_4', models.DateField(blank=True, null=True)),
                ('part_3_duration_4', models.PositiveIntegerField(blank=True, null=True)),
                ('part_3_unit_4', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_imm_reporting_4', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_reporting_offr_4', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_resp_5', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_from_5', models.DateField(blank=True, null=True)),
                ('part_3_to_5', models.DateField(blank=True, null=True)),
                ('part_3_duration_5', models.PositiveIntegerField(blank=True, null=True)),
                ('part_3_unit_5', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_imm_reporting_5', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_reporting_offr_5', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_contribution_1', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_from_1', models.DateField(blank=True, null=True)),
                ('spl_to_1', models.DateField(blank=True, null=True)),
                ('spl_duration_1', models.PositiveIntegerField(blank=True, null=True)),
                ('spl_role_1', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_performance_1', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_contribution_2', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_from_2', models.DateField(blank=True, null=True)),
                ('spl_to_2', models.DateField(blank=True, null=True)),
                ('spl_duration_2', models.PositiveIntegerField(blank=True, null=True)),
                ('spl_role_2', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_performance_2', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_contribution_3', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_from_3', models.DateField(blank=True, null=True)),
                ('spl_to_3', models.DateField(blank=True, null=True)),
                ('spl_duration_3', models.PositiveIntegerField(blank=True, null=True)),
                ('spl_role_3', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_performance_3', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_contribution_4', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_from_4', models.DateField(blank=True, null=True)),
                ('spl_to_4', models.DateField(blank=True, null=True)),
                ('spl_duration_4', models.PositiveIntegerField(blank=True, null=True)),
                ('spl_role_4', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_performance_4', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_contribution_5', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_from_5', models.DateField(blank=True, null=True)),
                ('spl_to_5', models.DateField(blank=True, null=True)),
                ('spl_duration_5', models.PositiveIntegerField(blank=True, null=True)),
                ('spl_role_5', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_performance_5', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_activities_1', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_from_1', models.DateField(blank=True, null=True)),
                ('ops_to_1', models.DateField(blank=True, null=True)),
                ('ops_duration_1', models.PositiveIntegerField(blank=True, null=True)),
                ('ops_role_1', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_performance_1', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_activities_2', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_from_2', models.DateField(blank=True, null=True)),
                ('ops_to_2', models.DateField(blank=True, null=True)),
                ('ops_duration_2', models.PositiveIntegerField(blank=True, null=True)),
                ('ops_role_2', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_performance_2', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_activities_3', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_from_3', models.DateField(blank=True, null=True)),
                ('ops_to_3', models.DateField(blank=True, null=True)),
                ('ops_duration_3', models.PositiveIntegerField(blank=True, null=True)),
                ('ops_role_3', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_performance_3', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_activities_4', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_from_4', models.DateField(blank=True, null=True)),
                ('ops_to_4', models.DateField(blank=True, null=True)),
                ('ops_duration_4', models.PositiveIntegerField(blank=True, null=True)),
                ('ops_role_4', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_performance_4', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_activities_5', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_from_5', models.DateField(blank=True, null=True)),
                ('ops_to_5', models.DateField(blank=True, null=True)),
                ('ops_duration_5', models.PositiveIntegerField(blank=True, null=True)),
                ('ops_role_5', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_performance_5', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_activities_1', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_from_1', models.DateField(blank=True, null=True)),
                ('trg_to_1', models.DateField(blank=True, null=True)),
                ('trg_duration_1', models.PositiveIntegerField(blank=True, null=True)),
                ('trg_role_1', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_performance_1', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_activities_2', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_from_2', models.DateField(blank=True, null=True)),
                ('trg_to_2', models.DateField(blank=True, null=True)),
                ('trg_duration_2', models.PositiveIntegerField(blank=True, null=True)),
                ('trg_role_2', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_performance_2', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_activities_3', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_from_3', models.DateField(blank=True, null=True)),
                ('trg_to_3', models.DateField(blank=True, null=True)),
                ('trg_duration_3', models.PositiveIntegerField(blank=True, null=True)),
                ('trg_role_3', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_performance_3', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_activities_4', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_from_4', models.DateField(blank=True, null=True)),
                ('trg_to_4', models.DateField(blank=True, null=True)),
                ('trg_duration_4', models.PositiveIntegerField(blank=True, null=True)),
                ('trg_role_4', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_performance_4', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_activities_5', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_from_5', models.DateField(blank=True, null=True)),
                ('trg_to_5', models.DateField(blank=True, null=True)),
                ('trg_duration_5', models.PositiveIntegerField(blank=True, null=True)),
                ('trg_role_5', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_performance_5', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_activities_1', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_from_1', models.DateField(blank=True, null=True)),
                ('admin_to_1', models.DateField(blank=True, null=True)),
                ('admin_duration_1', models.PositiveIntegerField(blank=True, null=True)),
                ('admin_role_1', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_performance_1', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_activities_2', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_from_2', models.DateField(blank=True, null=True)),
                ('admin_to_2', models.DateField(blank=True, null=True)),
                ('admin_duration_2', models.PositiveIntegerField(blank=True, null=True)),
                ('admin_role_2', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_performance_2', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_activities_3', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_from_3', models.DateField(blank=True, null=True)),
                ('admin_to_3', models.DateField(blank=True, null=True)),
                ('admin_duration_3', models.PositiveIntegerField(blank=True, null=True)),
                ('admin_role_3', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_performance_3', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_activities_4', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_from_4', models.DateField(blank=True, null=True)),
                ('admin_to_4', models.DateField(blank=True, null=True)),
                ('admin_duration_4', models.PositiveIntegerField(blank=True, null=True)),
                ('admin_role_4', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_performance_4', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_activities_5', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_from_5', models.DateField(blank=True, null=True)),
                ('admin_to_5', models.DateField(blank=True, null=True)),
                ('admin_duration_5', models.PositiveIntegerField(blank=True, null=True)),
                ('admin_role_5', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_performance_5', models.CharField(blank=True, max_length=55, null=True)),
                ('honour_and_pride_state', models.IntegerField(blank=True, choices=[(1, 'Outstanding'), (2, 'Good'), (3, 'Satisfactory'), (4, 'Need Attn'), (5, 'Problematic')], null=True)),
                ('honour_and_pride_reason', models.TextField(blank=True, null=True)),
                ('honour_and_pride_reference', models.CharField(blank=True, max_length=55, null=True)),
                ('honour_and_integrity_state', models.IntegerField(blank=True, choices=[(1, 'Outstanding'), (2, 'Good'), (3, 'Satisfactory'), (4, 'Need Attn'), (5, 'Problematic')], null=True)),
                ('honour_and_integrity_reason', models.TextField(blank=True, null=True)),
                ('honour_and_integrity_reference', models.CharField(blank=True, max_length=55, null=True)),
                ('loyalty_state', models.IntegerField(blank=True, choices=[(1, 'Outstanding'), (2, 'Good'), (3, 'Satisfactory'), (4, 'Need Attn'), (5, 'Problematic')], null=True)),
                ('loyalty_reason', models.TextField(blank=True, null=True)),
                ('loyalty_reference', models.CharField(blank=True, max_length=55, null=True)),
                ('dutifulness_state', models.IntegerField(blank=True, choices=[(1, 'Outstanding'), (2, 'Good'), (3, 'Satisfactory'), (4, 'Need Attn'), (5, 'Problematic')], null=True)),
                ('dutifulness_reason', models.TextField(blank=True, null=True)),
                ('dutifulness_reference', models.CharField(blank=True, max_length=55, null=True)),
                ('courage_state', models.IntegerField(blank=True, choices=[(1, 'Outstanding'), (2, 'Good'), (3, 'Satisfactory'), (4, 'Need Attn'), (5, 'Problematic')], null=True)),
                ('courage_reason', models.TextField(blank=True, null=True)),
                ('courage_reference', models.CharField(blank=True, max_length=55, null=True)),
                ('respect_state', models.IntegerField(blank=True, choices=[(1, 'Outstanding'), (2, 'Good'), (3, 'Satisfactory'), (4, 'Need Attn'), (5, 'Problematic')], null=True)),
                ('respect_reason', models.TextField(blank=True, null=True)),
                ('respect_reference', models.CharField(blank=True, max_length=55, null=True)),
                ('character_traits', models.IntegerField(blank=True, choices=[(1, 'Outstanding – Exemplifies integrity, discipline, and loyalty of the highest order.'), (2, 'Good – Demonstrates strong moral character and discipline.'), (3, 'Satisfactory – Acceptable level of conduct and integrity.'), (4, 'Needs Attention – Occasional lapses in discipline or dependability.'), (5, 'Poor Performance – Displays serious shortcomings in conduct and integrity.')], null=True)),
                ('mil_values', models.IntegerField(blank=True, choices=[(1, 'Outstanding – Fully embodies military honour, pride, respect, and courage at all times.'), (2, 'Good – Maintains high regard for military values in most situations.'), (3, 'Satisfactory – Meets expected military value standards.'), (4, 'Needs Attention – Inconsistent in upholding military values.'), (5, 'Poor Performance – Disregards or violates core military values.')], null=True)),
                ('turnout_and_bearing', models.IntegerField(blank=True, choices=[(1, 'Outstanding – Always presents immaculate turnout with exemplary military bearing.'), (2, 'Good – Maintains a neat appearance and good posture.'), (3, 'Satisfactory – Meets minimum standards of appearance and bearing.'), (4, 'Needs Attention – Occasionally untidy or lacking proper posture.'), (5, 'Poor Performance – Consistently untidy and lacking military bearing.')], null=True)),
                ('physical_efficiency', models.IntegerField(blank=True, choices=[(1, 'Outstanding – Demonstrates exceptional stamina and physical fitness, consistently exceeding standards.'), (2, 'Good – Maintains above-average fitness and meets all physical requirements with ease.'), (3, 'Satisfactory – Meets the minimum required fitness standards.'), (4, 'Needs Attention – Fitness level below desired standard; requires improvement.'), (5, 'Poor Performance – Fails to meet basic physical efficiency requirements.')], null=True)),
                ('firing_efficiency', models.IntegerField(blank=True, choices=[(1, 'Outstanding – Consistently achieves top scores with excellent weapon handling and accuracy.'), (2, 'Good – Performs firing tasks with above-average accuracy and safe handling.'), (3, 'Satisfactory – Meets minimum firing qualification standards.'), (4, 'Needs Attention – Shows inconsistency in accuracy and requires further training.'), (5, 'Poor Performance – Unable to meet firing qualification standards.')], null=True)),
                ('course_and_cdrs', models.IntegerField(blank=True, choices=[(1, 'Outstanding – Achieves excellent results in courses and applies knowledge effectively in duties.'), (2, 'Good – Performs well in courses and demonstrates useful application of skills.'), (3, 'Satisfactory – Passes courses and applies training at a basic level.'), (4, 'Needs Attention – Course results below expectation; limited application of training.'), (5, 'Poor Performance – Fails to achieve course standards or apply acquired skills.')], null=True)),
                ('leadership', models.IntegerField(blank=True, choices=[(1, 'Outstanding – Inspires subordinates, leads decisively, and achieves outstanding team results.'), (2, 'Good – Provides effective leadership and maintains unit cohesion.'), (3, 'Satisfactory – Leads adequately and meets expectations.'), (4, 'Needs Attention – Struggles to motivate or guide subordinates effectively.'), (5, 'Poor Performance – Fails to provide direction or exercise command effectively.')], null=True)),
                ('followership', models.IntegerField(blank=True, choices=[(1, 'Outstanding – Loyal, dependable, and proactively supports superiors’ intent.'), (2, 'Good – Follows orders diligently and works well within a team.'), (3, 'Satisfactory – Acceptable obedience and cooperation.'), (4, 'Needs Attention – Occasionally reluctant or slow in following instructions.'), (5, 'Poor Performance – Frequently disobeys or resists orders.')], null=True)),
                ('comm_skill', models.IntegerField(blank=True, choices=[(1, 'Outstanding – Communicates with exceptional clarity and confidence; listens actively.'), (2, 'Good – Communicates clearly and effectively.'), (3, 'Satisfactory – Meets basic communication requirements.'), (4, 'Needs Attention – Occasionally unclear or hesitant in communication.'), (5, 'Poor Performance – Unable to convey or receive information effectively.')], null=True)),
                ('tech_prof', models.IntegerField(blank=True, choices=[(1, 'Outstanding – Expert-level knowledge and skill in trade-specific and technical duties.'), (2, 'Good – Performs technical duties above the required standard.'), (3, 'Satisfactory – Meets technical proficiency standards.'), (4, 'Needs Attention – Requires improvement in technical skills.'), (5, 'Poor Performance – Lacks the required technical competence.')], null=True)),
                ('appt', models.IntegerField(blank=True, choices=[(1, 'Outstanding – Excels in all appointments, adapts quickly, and achieves exceptional results.'), (2, 'Good – Performs well in various appointments with consistent results.'), (3, 'Satisfactory – Meets expectations in assigned roles.'), (4, 'Needs Attention – Performs inconsistently across different roles.'), (5, 'Poor Performance – Fails to meet expectations in multiple appointments.')], null=True)),
                ('suitability_for_next_rk', models.IntegerField(blank=True, choices=[(1, 'Yes'), (2, 'No')], null=True)),
                ('suitability_for_next_rk_reason', models.TextField(blank=True, null=True)),
                ('recom_for_un_msn', models.IntegerField(blank=True, choices=[(1, 'Yes'), (2, 'No')], null=True)),
                ('recom_for_un_msn_reason', models.TextField(blank=True, null=True)),
                ('advice', models.TextField(blank=True, null=True)),
                ('opinion_of_reported_sldr', models.IntegerField(blank=True, choices=[(1, 'Agree'), (2, 'Disagree')], null=True)),
                ('opinion_of_reported_sldr_reason', models.TextField(blank=True, null=True)),
                ('cfm_suitability_for_next_rk', models.IntegerField(blank=True, choices=[(1, 'Yes'), (2, 'No')], null=True)),
                ('cfm_suitability_for_next_rk_reason', models.TextField(blank=True, null=True)),
                ('cfm_recom_for_un_msn', models.IntegerField(blank=True, choices=[(1, 'Yes'), (2, 'No')], null=True)),
                ('cfm_recom_for_un_msn_reason', models.TextField(blank=True, null=True)),
                ('opinion', models.IntegerField(blank=True, choices=[(1, 'Agree'), (2, 'Disagree')], null=True)),
                ('member', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='account.member')),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='HistoricalAPR',
            fields=[
                ('id', models.BigIntegerField(auto_created=True, blank=True, db_index=True, verbose_name='ID')),
                ('created_at', models.DateTimeField(blank=True, editable=False, null=True)),
                ('updated_at', models.DateTimeField(blank=True, editable=False, null=True)),
                ('year', models.PositiveIntegerField()),
                ('obesity', models.CharField(blank=True, max_length=55, null=True)),
                ('sickness', models.CharField(blank=True, choices=[(1, 'Yes'), (2, 'No')], max_length=55, null=True)),
                ('sickness_from', models.DateField(blank=True, null=True)),
                ('sickness_to', models.DateField(blank=True, null=True)),
                ('sickness_remarks', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_resp_1', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_from_1', models.DateField(blank=True, null=True)),
                ('part_3_to_1', models.DateField(blank=True, null=True)),
                ('part_3_duration_1', models.PositiveIntegerField(blank=True, null=True)),
                ('part_3_unit_1', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_imm_reporting_1', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_reporting_offr_1', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_resp_2', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_from_2', models.DateField(blank=True, null=True)),
                ('part_3_to_2', models.DateField(blank=True, null=True)),
                ('part_3_duration_2', models.PositiveIntegerField(blank=True, null=True)),
                ('part_3_unit_2', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_imm_reporting_2', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_reporting_offr_2', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_resp_3', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_from_3', models.DateField(blank=True, null=True)),
                ('part_3_to_3', models.DateField(blank=True, null=True)),
                ('part_3_duration_3', models.PositiveIntegerField(blank=True, null=True)),
                ('part_3_unit_3', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_imm_reporting_3', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_reporting_offr_3', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_resp_4', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_from_4', models.DateField(blank=True, null=True)),
                ('part_3_to_4', models.DateField(blank=True, null=True)),
                ('part_3_duration_4', models.PositiveIntegerField(blank=True, null=True)),
                ('part_3_unit_4', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_imm_reporting_4', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_reporting_offr_4', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_resp_5', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_from_5', models.DateField(blank=True, null=True)),
                ('part_3_to_5', models.DateField(blank=True, null=True)),
                ('part_3_duration_5', models.PositiveIntegerField(blank=True, null=True)),
                ('part_3_unit_5', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_imm_reporting_5', models.CharField(blank=True, max_length=55, null=True)),
                ('part_3_reporting_offr_5', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_contribution_1', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_from_1', models.DateField(blank=True, null=True)),
                ('spl_to_1', models.DateField(blank=True, null=True)),
                ('spl_duration_1', models.PositiveIntegerField(blank=True, null=True)),
                ('spl_role_1', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_performance_1', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_contribution_2', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_from_2', models.DateField(blank=True, null=True)),
                ('spl_to_2', models.DateField(blank=True, null=True)),
                ('spl_duration_2', models.PositiveIntegerField(blank=True, null=True)),
                ('spl_role_2', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_performance_2', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_contribution_3', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_from_3', models.DateField(blank=True, null=True)),
                ('spl_to_3', models.DateField(blank=True, null=True)),
                ('spl_duration_3', models.PositiveIntegerField(blank=True, null=True)),
                ('spl_role_3', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_performance_3', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_contribution_4', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_from_4', models.DateField(blank=True, null=True)),
                ('spl_to_4', models.DateField(blank=True, null=True)),
                ('spl_duration_4', models.PositiveIntegerField(blank=True, null=True)),
                ('spl_role_4', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_performance_4', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_contribution_5', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_from_5', models.DateField(blank=True, null=True)),
                ('spl_to_5', models.DateField(blank=True, null=True)),
                ('spl_duration_5', models.PositiveIntegerField(blank=True, null=True)),
                ('spl_role_5', models.CharField(blank=True, max_length=55, null=True)),
                ('spl_performance_5', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_activities_1', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_from_1', models.DateField(blank=True, null=True)),
                ('ops_to_1', models.DateField(blank=True, null=True)),
                ('ops_duration_1', models.PositiveIntegerField(blank=True, null=True)),
                ('ops_role_1', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_performance_1', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_activities_2', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_from_2', models.DateField(blank=True, null=True)),
                ('ops_to_2', models.DateField(blank=True, null=True)),
                ('ops_duration_2', models.PositiveIntegerField(blank=True, null=True)),
                ('ops_role_2', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_performance_2', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_activities_3', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_from_3', models.DateField(blank=True, null=True)),
                ('ops_to_3', models.DateField(blank=True, null=True)),
                ('ops_duration_3', models.PositiveIntegerField(blank=True, null=True)),
                ('ops_role_3', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_performance_3', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_activities_4', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_from_4', models.DateField(blank=True, null=True)),
                ('ops_to_4', models.DateField(blank=True, null=True)),
                ('ops_duration_4', models.PositiveIntegerField(blank=True, null=True)),
                ('ops_role_4', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_performance_4', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_activities_5', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_from_5', models.DateField(blank=True, null=True)),
                ('ops_to_5', models.DateField(blank=True, null=True)),
                ('ops_duration_5', models.PositiveIntegerField(blank=True, null=True)),
                ('ops_role_5', models.CharField(blank=True, max_length=55, null=True)),
                ('ops_performance_5', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_activities_1', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_from_1', models.DateField(blank=True, null=True)),
                ('trg_to_1', models.DateField(blank=True, null=True)),
                ('trg_duration_1', models.PositiveIntegerField(blank=True, null=True)),
                ('trg_role_1', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_performance_1', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_activities_2', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_from_2', models.DateField(blank=True, null=True)),
                ('trg_to_2', models.DateField(blank=True, null=True)),
                ('trg_duration_2', models.PositiveIntegerField(blank=True, null=True)),
                ('trg_role_2', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_performance_2', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_activities_3', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_from_3', models.DateField(blank=True, null=True)),
                ('trg_to_3', models.DateField(blank=True, null=True)),
                ('trg_duration_3', models.PositiveIntegerField(blank=True, null=True)),
                ('trg_role_3', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_performance_3', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_activities_4', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_from_4', models.DateField(blank=True, null=True)),
                ('trg_to_4', models.DateField(blank=True, null=True)),
                ('trg_duration_4', models.PositiveIntegerField(blank=True, null=True)),
                ('trg_role_4', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_performance_4', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_activities_5', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_from_5', models.DateField(blank=True, null=True)),
                ('trg_to_5', models.DateField(blank=True, null=True)),
                ('trg_duration_5', models.PositiveIntegerField(blank=True, null=True)),
                ('trg_role_5', models.CharField(blank=True, max_length=55, null=True)),
                ('trg_performance_5', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_activities_1', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_from_1', models.DateField(blank=True, null=True)),
                ('admin_to_1', models.DateField(blank=True, null=True)),
                ('admin_duration_1', models.PositiveIntegerField(blank=True, null=True)),
                ('admin_role_1', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_performance_1', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_activities_2', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_from_2', models.DateField(blank=True, null=True)),
                ('admin_to_2', models.DateField(blank=True, null=True)),
                ('admin_duration_2', models.PositiveIntegerField(blank=True, null=True)),
                ('admin_role_2', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_performance_2', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_activities_3', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_from_3', models.DateField(blank=True, null=True)),
                ('admin_to_3', models.DateField(blank=True, null=True)),
                ('admin_duration_3', models.PositiveIntegerField(blank=True, null=True)),
                ('admin_role_3', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_performance_3', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_activities_4', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_from_4', models.DateField(blank=True, null=True)),
                ('admin_to_4', models.DateField(blank=True, null=True)),
                ('admin_duration_4', models.PositiveIntegerField(blank=True, null=True)),
                ('admin_role_4', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_performance_4', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_activities_5', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_from_5', models.DateField(blank=True, null=True)),
                ('admin_to_5', models.DateField(blank=True, null=True)),
                ('admin_duration_5', models.PositiveIntegerField(blank=True, null=True)),
                ('admin_role_5', models.CharField(blank=True, max_length=55, null=True)),
                ('admin_performance_5', models.CharField(blank=True, max_length=55, null=True)),
                ('honour_and_pride_state', models.IntegerField(blank=True, choices=[(1, 'Outstanding'), (2, 'Good'), (3, 'Satisfactory'), (4, 'Need Attn'), (5, 'Problematic')], null=True)),
                ('honour_and_pride_reason', models.TextField(blank=True, null=True)),
                ('honour_and_pride_reference', models.CharField(blank=True, max_length=55, null=True)),
                ('honour_and_integrity_state', models.IntegerField(blank=True, choices=[(1, 'Outstanding'), (2, 'Good'), (3, 'Satisfactory'), (4, 'Need Attn'), (5, 'Problematic')], null=True)),
                ('honour_and_integrity_reason', models.TextField(blank=True, null=True)),
                ('honour_and_integrity_reference', models.CharField(blank=True, max_length=55, null=True)),
                ('loyalty_state', models.IntegerField(blank=True, choices=[(1, 'Outstanding'), (2, 'Good'), (3, 'Satisfactory'), (4, 'Need Attn'), (5, 'Problematic')], null=True)),
                ('loyalty_reason', models.TextField(blank=True, null=True)),
                ('loyalty_reference', models.CharField(blank=True, max_length=55, null=True)),
                ('dutifulness_state', models.IntegerField(blank=True, choices=[(1, 'Outstanding'), (2, 'Good'), (3, 'Satisfactory'), (4, 'Need Attn'), (5, 'Problematic')], null=True)),
                ('dutifulness_reason', models.TextField(blank=True, null=True)),
                ('dutifulness_reference', models.CharField(blank=True, max_length=55, null=True)),
                ('courage_state', models.IntegerField(blank=True, choices=[(1, 'Outstanding'), (2, 'Good'), (3, 'Satisfactory'), (4, 'Need Attn'), (5, 'Problematic')], null=True)),
                ('courage_reason', models.TextField(blank=True, null=True)),
                ('courage_reference', models.CharField(blank=True, max_length=55, null=True)),
                ('respect_state', models.IntegerField(blank=True, choices=[(1, 'Outstanding'), (2, 'Good'), (3, 'Satisfactory'), (4, 'Need Attn'), (5, 'Problematic')], null=True)),
                ('respect_reason', models.TextField(blank=True, null=True)),
                ('respect_reference', models.CharField(blank=True, max_length=55, null=True)),
                ('character_traits', models.IntegerField(blank=True, choices=[(1, 'Outstanding – Exemplifies integrity, discipline, and loyalty of the highest order.'), (2, 'Good – Demonstrates strong moral character and discipline.'), (3, 'Satisfactory – Acceptable level of conduct and integrity.'), (4, 'Needs Attention – Occasional lapses in discipline or dependability.'), (5, 'Poor Performance – Displays serious shortcomings in conduct and integrity.')], null=True)),
                ('mil_values', models.IntegerField(blank=True, choices=[(1, 'Outstanding – Fully embodies military honour, pride, respect, and courage at all times.'), (2, 'Good – Maintains high regard for military values in most situations.'), (3, 'Satisfactory – Meets expected military value standards.'), (4, 'Needs Attention – Inconsistent in upholding military values.'), (5, 'Poor Performance – Disregards or violates core military values.')], null=True)),
                ('turnout_and_bearing', models.IntegerField(blank=True, choices=[(1, 'Outstanding – Always presents immaculate turnout with exemplary military bearing.'), (2, 'Good – Maintains a neat appearance and good posture.'), (3, 'Satisfactory – Meets minimum standards of appearance and bearing.'), (4, 'Needs Attention – Occasionally untidy or lacking proper posture.'), (5, 'Poor Performance – Consistently untidy and lacking military bearing.')], null=True)),
                ('physical_efficiency', models.IntegerField(blank=True, choices=[(1, 'Outstanding – Demonstrates exceptional stamina and physical fitness, consistently exceeding standards.'), (2, 'Good – Maintains above-average fitness and meets all physical requirements with ease.'), (3, 'Satisfactory – Meets the minimum required fitness standards.'), (4, 'Needs Attention – Fitness level below desired standard; requires improvement.'), (5, 'Poor Performance – Fails to meet basic physical efficiency requirements.')], null=True)),
                ('firing_efficiency', models.IntegerField(blank=True, choices=[(1, 'Outstanding – Consistently achieves top scores with excellent weapon handling and accuracy.'), (2, 'Good – Performs firing tasks with above-average accuracy and safe handling.'), (3, 'Satisfactory – Meets minimum firing qualification standards.'), (4, 'Needs Attention – Shows inconsistency in accuracy and requires further training.'), (5, 'Poor Performance – Unable to meet firing qualification standards.')], null=True)),
                ('course_and_cdrs', models.IntegerField(blank=True, choices=[(1, 'Outstanding – Achieves excellent results in courses and applies knowledge effectively in duties.'), (2, 'Good – Performs well in courses and demonstrates useful application of skills.'), (3, 'Satisfactory – Passes courses and applies training at a basic level.'), (4, 'Needs Attention – Course results below expectation; limited application of training.'), (5, 'Poor Performance – Fails to achieve course standards or apply acquired skills.')], null=True)),
                ('leadership', models.IntegerField(blank=True, choices=[(1, 'Outstanding – Inspires subordinates, leads decisively, and achieves outstanding team results.'), (2, 'Good – Provides effective leadership and maintains unit cohesion.'), (3, 'Satisfactory – Leads adequately and meets expectations.'), (4, 'Needs Attention – Struggles to motivate or guide subordinates effectively.'), (5, 'Poor Performance – Fails to provide direction or exercise command effectively.')], null=True)),
                ('followership', models.IntegerField(blank=True, choices=[(1, 'Outstanding – Loyal, dependable, and proactively supports superiors’ intent.'), (2, 'Good – Follows orders diligently and works well within a team.'), (3, 'Satisfactory – Acceptable obedience and cooperation.'), (4, 'Needs Attention – Occasionally reluctant or slow in following instructions.'), (5, 'Poor Performance – Frequently disobeys or resists orders.')], null=True)),
                ('comm_skill', models.IntegerField(blank=True, choices=[(1, 'Outstanding – Communicates with exceptional clarity and confidence; listens actively.'), (2, 'Good – Communicates clearly and effectively.'), (3, 'Satisfactory – Meets basic communication requirements.'), (4, 'Needs Attention – Occasionally unclear or hesitant in communication.'), (5, 'Poor Performance – Unable to convey or receive information effectively.')], null=True)),
                ('tech_prof', models.IntegerField(blank=True, choices=[(1, 'Outstanding – Expert-level knowledge and skill in trade-specific and technical duties.'), (2, 'Good – Performs technical duties above the required standard.'), (3, 'Satisfactory – Meets technical proficiency standards.'), (4, 'Needs Attention – Requires improvement in technical skills.'), (5, 'Poor Performance – Lacks the required technical competence.')], null=True)),
                ('appt', models.IntegerField(blank=True, choices=[(1, 'Outstanding – Excels in all appointments, adapts quickly, and achieves exceptional results.'), (2, 'Good – Performs well in various appointments with consistent results.'), (3, 'Satisfactory – Meets expectations in assigned roles.'), (4, 'Needs Attention – Performs inconsistently across different roles.'), (5, 'Poor Performance – Fails to meet expectations in multiple appointments.')], null=True)),
                ('suitability_for_next_rk', models.IntegerField(blank=True, choices=[(1, 'Yes'), (2, 'No')], null=True)),
                ('suitability_for_next_rk_reason', models.TextField(blank=True, null=True)),
                ('recom_for_un_msn', models.IntegerField(blank=True, choices=[(1, 'Yes'), (2, 'No')], null=True)),
                ('recom_for_un_msn_reason', models.TextField(blank=True, null=True)),
                ('advice', models.TextField(blank=True, null=True)),
                ('opinion_of_reported_sldr', models.IntegerField(blank=True, choices=[(1, 'Agree'), (2, 'Disagree')], null=True)),
                ('opinion_of_reported_sldr_reason', models.TextField(blank=True, null=True)),
                ('cfm_suitability_for_next_rk', models.IntegerField(blank=True, choices=[(1, 'Yes'), (2, 'No')], null=True)),
                ('cfm_suitability_for_next_rk_reason', models.TextField(blank=True, null=True)),
                ('cfm_recom_for_un_msn', models.IntegerField(blank=True, choices=[(1, 'Yes'), (2, 'No')], null=True)),
                ('cfm_recom_for_un_msn_reason', models.TextField(blank=True, null=True)),
                ('opinion', models.IntegerField(blank=True, choices=[(1, 'Agree'), (2, 'Disagree')], null=True)),
                ('history_id', models.AutoField(primary_key=True, serialize=False)),
                ('history_date', models.DateTimeField(db_index=True)),
                ('history_change_reason', models.CharField(max_length=100, null=True)),
                ('history_type', models.CharField(choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')], max_length=1)),
                ('history_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)),
                ('member', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='account.member')),
            ],
            options={
                'verbose_name': 'historical apr',
                'verbose_name_plural': 'historical aprs',
                'ordering': ('-history_date', '-history_id'),
                'get_latest_by': ('history_date', 'history_id'),
            },
            bases=(simple_history.models.HistoricalChanges, models.Model),
        ),
    ]
