Skip to content

Architectural problems and simplification #7000

Open
@iamareebjamal

Description

@iamareebjamal

This is a discussion ground of several major issue with the current architecture of the project which makes it incredibly hard to make logical decisions about the project as their is no formal set of requirements/specifications. Ask these questions and flesh out a specification to be followed in the future by maintainers and contributors.

Current Problems

What to do with order on ticket modification/deletion? (LT)

All previous orders are corrupted now. Choices:

  • Prevent changing and deleting tickets
  • Store price at the time of order creation

What to do on discount code modification/deletion? (LT)

Same as above

Why are there event and ticket discount codes? (Immediate)

Simplify the design. Currently, discount code contains a foreign key to event and then there is a table which maps discount code to tickets. But right now only ticket discount codes are being considered. What is to be done? This needs to be simplified and abstracted as multiple implementations and logical variations exist

How is discount code counted? (Immediate)

  • If a discount code quantity is 100, does buying 5 Ticket A in a single order and applying discount code subtract 5 or 1?
  • Is the discount applied on all ticket A (likely)?
  • What's the use of min_quantity in discount code?
  • What happens when discount code usage is exceeded partially? Applied to some tickets or order is declined?
  • What happens if ticket count of Ticket A exceeds max_quantity of discount code? Applied to max_quantity tickets or order is declined?

How to count discount code holders if a ticket is deleted? (Immediate)

If a ticket is deleted after an order is associated with a discount code, how should discount code usage be counted? With deleted ticket or without?

Should we tell users discount code is expired, inactive, or just exhausted and invalid? (Immediate)

Current Choices:

  • Exhausted
  • Invalid (Used for expired, inactive, future validity and actual invalid)
  • Inactive
  • Expired

What to do on event deletion? (Currently Solved)

Don't let the user delete an event if there are any pending or completed order. Requires any changes?

What to do on user deletion? (Currently Solved)

Don't let the user delete itself if there are any pending or completed order. Requires any changes?

More to add and discuss in future:

  • Behaviour of Access Codes
  • Behaviour of system roles and user roles and event roles and what is panel. It is very confusing
  • Custom Form expectations. How much control and what kind of customisations are required

Further things are to be discussed in meeting and a spec is to be documented. Before fixing and implementing any feature, an expected behaviour and requirements doc will be created so that it is clear for future contributors what to implement and what to expect from the system and the transfer of knowledge is not needed from a single expert person

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions