add int id

This commit is contained in:
Sayyid Hamid Mahdavi 2025-05-15 17:09:53 +03:30
parent b8d2dd6925
commit 376359f723
3 changed files with 16 additions and 55 deletions

View file

@ -1,4 +1,4 @@
# Generated by Django 5.1.7 on 2025-05-13 10:26
# Generated by Django 5.1.7 on 2025-05-15 13:37
import django.db.models.deletion
import uuid
@ -19,14 +19,21 @@ class Migration(migrations.Migration):
migrations.CreateModel(
name='ChargeRequest',
fields=[
('uuid', models.UUIDField(db_index=True, default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True, db_index=True)),
('updated_at', models.DateTimeField(auto_now=True, db_index=True)),
('uuid', models.UUIDField(db_index=True, default=uuid.uuid4, editable=False, unique=True)),
('state', models.IntegerField(choices=[(1, 'created'), (2, 'delayed'), (3, 'pending'), (4, 'incomplete'), (5, 'success'), (6, 'failed'), (7, 'expected_failure')], default=1)),
('amount', models.PositiveBigIntegerField(blank=True, null=True)),
('callback_url', models.URLField(blank=True, null=True)),
('details', models.JSONField(blank=True, default=dict, null=True)),
('application', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to=settings.OAUTH2_PROVIDER_APPLICATION_MODEL)),
('pna_token', models.CharField(blank=True, db_index=True, max_length=255, null=True)),
('pna_order_id', models.IntegerField(blank=True, db_index=True, null=True)),
('pna_originator', models.CharField(blank=True, max_length=255, null=True)),
('pna_status', models.IntegerField(blank=True, choices=[(1, 'created'), (2, 'delayed'), (3, 'pending'), (4, 'incomplete'), (5, 'success'), (6, 'failed'), (7, 'expected_failure')], db_index=True, null=True)),
('pna_status_code', models.IntegerField(blank=True, null=True)),
('pna_status_message', models.CharField(blank=True, max_length=255, null=True)),
('application', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to=settings.OAUTH2_PROVIDER_APPLICATION_MODEL)),
('user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL)),
],
options={

View file

@ -1,51 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-13 16:08
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('pg', '0001_initial'),
migrations.swappable_dependency(settings.OAUTH2_PROVIDER_APPLICATION_MODEL),
]
operations = [
migrations.AddField(
model_name='chargerequest',
name='pna_order_id',
field=models.IntegerField(blank=True, db_index=True, null=True),
),
migrations.AddField(
model_name='chargerequest',
name='pna_originator',
field=models.CharField(blank=True, max_length=255, null=True),
),
migrations.AddField(
model_name='chargerequest',
name='pna_status',
field=models.IntegerField(blank=True, choices=[(1, 'created'), (2, 'delayed'), (3, 'pending'), (4, 'incomplete'), (5, 'success'), (6, 'failed'), (7, 'expected_failure')], db_index=True, null=True),
),
migrations.AddField(
model_name='chargerequest',
name='pna_status_code',
field=models.IntegerField(blank=True, null=True),
),
migrations.AddField(
model_name='chargerequest',
name='pna_status_message',
field=models.CharField(blank=True, max_length=255, null=True),
),
migrations.AddField(
model_name='chargerequest',
name='pna_token',
field=models.CharField(blank=True, db_index=True, max_length=255, null=True),
),
migrations.AlterField(
model_name='chargerequest',
name='application',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to=settings.OAUTH2_PROVIDER_APPLICATION_MODEL),
),
]

View file

@ -12,7 +12,9 @@ from utils.wallet_client import deposit_to_user_wallet_submit, withdraw_from_use
from utils.pna import PNAClient
class ChargeRequest(BaseModel):
class ChargeRequest(models.Model):
uuid = models.UUIDField(editable=False, default=uuid.uuid4, unique=True, db_index=True)
application = models.ForeignKey(oauth2_settings.APPLICATION_MODEL, on_delete=models.PROTECT,
related_name='+', null=True, blank=True)
state = models.IntegerField(choices=StateChoices.choices, default=StateChoices.CREATED)
@ -28,6 +30,9 @@ class ChargeRequest(BaseModel):
pna_status_code = models.IntegerField(null=True, blank=True)
pna_status_message = models.CharField(null=True, blank=True, max_length=255)
created_at = models.DateTimeField(auto_now_add=True, db_index=True)
updated_at = models.DateTimeField(auto_now=True, db_index=True)
# TODO: complete and use this
def change_state(self, from_state, to_state, error_message=None, **data):
if self.state == from_state: